1

Я работаю на Mac, и моя версия perl по умолчанию v5.12.4. В 99% случаев я использую установку perlbrew, так как мне для моей работы нужны многочисленные модули, которые я не хочу устанавливать на системный perl.

Есть ли способ автоматически переключиться на эту установку при запуске bash? Я пытался добавить

  perlbrew  switch perl-5.14.2

к .bashrc, но это не похоже на работу

2 ответа2

1
$ perlbrew

Usage:
    perlbrew command syntax:

        perlbrew <command> [options] [arguments]

...

   Commands:
        ...
        ...
        switch         Permanently use the specified perl as default

...

~$ perlbrew help switch

Usage: perlbrew switch [ <name> ]

Switch to the given version, and makes it the default for this and all
future terminal sessions.

Without a parameter, shows the version of perl currently selected.

Вам просто нужно ввести команду в окне терминала:

$ perlbrew switch perl-5.14.2

Тогда, если вы делаете:

$ perlbrew list

... вы увидите что-то вроде:

  perl-5.10.0  
* perl-5.14.2
  perl-5.20.2
  perl-5.20.2threads

* Указывает на Perl по умолчанию.

Я не уверен, почему ваша команда не работает в .bashrc - хотя команду нужно вводить только один раз, поэтому ставить ее .bashrc в любом случае неуместно. Согласно этой статье, Terminal не выполняет .bashrc - вместо этого он выполняет .bash_profile для всех оболочек, поэтому, возможно, именно поэтому он не работает. Согласно этой статье, если вы хотите выполнить .bashrc, вы должны ввести некоторый код в .bash_profile для этого.

Другая возможность: вы написали неправильное имя вашего perl. Чтобы проверить орфографию, выполните:

 $ perlbrew list

... затем скопируйте и вставьте имя perl, которое вы хотите использовать по умолчанию, в команду switch.

Perlbrew работает так, что добавляет путь к определенной версии Perl в начало переменной окружения PATH. Как вы, вероятно, знаете, когда вы запускаете команду в окне терминала, например, perl , ваша ОС ищет команду в каталогах, указанных в переменной среды PATH - в том порядке, в котором они указаны. Как только команда найдена, ваша ОС прекращает поиск. Первый матч выигрывает!

Когда окно терминала закрывается, perlbrew удаляет путь из передней части переменной среды PATH. Однако, когда вы используете команду switch (v. Команду use ), perlbrew пренебрегает, чтобы удалить путь из передней части переменной среды PATH. Поэтому в следующий раз, когда вы откроете окно терминала и введете команду perl , команда будет найдена в первом каталоге, указанном в переменной среды PATH, которая будет каталогом для версии perl, которую вы задали с помощью команды perlbrew switch .

0

Немного поздно, но для будущих искателей.

Команда довольно проста, в моем случае я использую Linux Centos 6.5, но поскольку она использует команду perlbrew, я ожидаю того же поведения, если нет, просто упомяну.

perlbrew install perl-5.14.2 -n --switch

У вас есть намного больше вариантов, чтобы повозиться в perlbrew -h повеселиться!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .