Как указать, какую версию Perl использовать в CentOS - PullRequest
5 голосов
/ 22 января 2011

Я использую CentOS 5.4, в которой по умолчанию доступна только версия perl 5.8, и у меня есть программа, требующая perl 5.10, поэтому я скомпилировал perl 5.10 в CentOS. Как мне указать, с каким perl я хочу запустить программу, потому что команда perl по умолчанию использует 5.8.

Ответы [ 7 ]

13 голосов
/ 22 января 2011

Я добавляю свой голос, чтобы рекомендовать вообще не связываться с системным Perl.

Никто не упомянул App :: perlbrew . Это позволяет вам иметь несколько версий Perl и легко переключаться между ними. Конечно, это можно сделать вручную, но гораздо проще иметь этот инструмент для вас; из стручка -

# Install some Perls
perlbrew install perl-5.12.2
perlbrew install perl-5.8.1
perlbrew install perl-5.13.6

# See what were installed
perlbrew list

# Switch perl in the $PATH
perlbrew switch perl-5.12.2
perl -v

# Switch to another version
perlbrew switch perl-5.8.1
perl -v

# Switch to a certain perl executable not managed by perlbrew.
perlbrew switch /usr/bin/perl

# Or turn it off completely. Useful when you messed up too deep.
perlbrew off

# Use 'switch' command to turn it back on.
perlbrew switch perl-5.12.2
5 голосов
/ 22 января 2011

Первая строка файла программы должна ссылаться на двоичный файл perl, который вы хотите использовать: например,

#!/usr/bin/perl

Вы также можете изменить переменную PATH, чтобы каталог, в котором находится бинарный файл perl 5.10,перечислены до 5.8 двоичного каталога.например,

export PATH=/path/to/perl/5.10:$PATH
3 голосов
/ 22 января 2011

Мне нравится делать символические ссылки на мои различные исполняемые файлы Perl в /usr/local/bin:

$ [sudo] ln -s /path/to/perl5.10.1.exe /usr/local/bin/perl510
$ [sudo] ln -s /path/to/perl5.13.8.exe /usr/local/bin/perl513
$ ... etc. ...
$ # and just for completeness
$ ln -s /usr/bin/perl /usr/local/bin/perl58

, а затем просто вызовите:

$ perl510 script_to_use_with_v5.10.pl
1 голос
/ 22 января 2011

Существует инструмент под названием альтернативы, который был разработан для эффективного решения именно такой проблемы.Это в основном дает вам простой способ переключения между различными версиями приложений, манипулируя символическими ссылками, например, в ваших каталогах bin.

Скажите «man альтернативы» в терминале (или альтернативы yum install, если у вас нетэто установлено).

0 голосов
/ 24 февраля 2018

решение состоит из двух частей ... сначала отредактируйте myscript.pl, который хочет конкретную версию

old
#!/usr/bin/perl

new
#!/usr/bin/env perl

выше не влияет на нормальное выполнение скрипта ... когда вы хотите, чтобы вышеупомянутый myscript.pl использовал определенную версию perl, создайте скрипт-обертку, которая содержит

export PATH=/cool/new/version/perl:$PATH
#  now execute script on following line
/path/to/myscript.pl

таким образом, другие вызовы скрипта остаются неизменными, и они просто используют perl по умолчанию, тогда как скрипт оболочки запуска выполняет тот же скрипт myscript.pl с выбранной версией perl

0 голосов
/ 16 января 2012

Кстати, пакет perlbrew доступен для установки из репозитория EPEL для CentOS 5.x. Сначала я попытался установить только этот rpm, но у него есть ряд зависимостей, поэтому я решил добавить репозиторий EPEL в свой список репозиториев yum на моем компьютере.

0 голосов
/ 22 января 2011

установите переменную среды PATH так, чтобы она указывала на ваш новый исполняемый файл perl.Например

 export PATH=/newpath/perl:$PATH
...