Как установить несколько версий Perl?
Я хочу установить из исходных версий Perl 5.005
, v5.6
, v5.8
, v5.10
Сейчас у меня установлен "v5.10.0".
/opt/perl/bin
/opt/perl/html
/opt/perl/lib
/opt/perl/man
/opt/perl/lib/5.10.0
/opt/perl/lib/site_perl
/opt/perl/lib/site_perl/5.10.0
У меня возникнут проблемы, если я их установлю в /opt/perl
?
Или я должен разделить их на свои, специфичные по версии, каталоги? Как /opt/perl-5.10.0/
Ответы
Ответ 1
Я полностью устанавливаю все свои perl в их собственную директорию, чтобы они ничего не делили с любым другим perl. Чтобы сделать это, вы просто Configure
скрипту Configure
куда все устанавливать. Мне нравится /usr/local/perls:
% ./Configure -des -Dprefix=/usr/local/perls/perl-5.x.y
Когда я делаю это для нескольких версий, я получаю каталог с отдельными установками.
% ls -1 /usr/local/perls
perl-5.10.0
perl-5.10.1
perl-5.6.2
perl-5.8.8
Все они имеют свои собственные каталоги bin и lib:
% ls -1 /usr/local/perls/perl-5.10.0
bin
lib
man
Большинство общих инструментов определят, что делать, если вы вызываете их с разными perl:
/usr/local/perls/perl-5.10.0/bin/perl /usr/local/bin/cpan
Тем не менее, вы можете взять Perl, который вы хотите использовать чаще всего, и поставить его первым на своем пути. Я просто делаю символическую ссылку на /usr/local/bin/perl, но вы также можете добавить каталоги в PATH.
Perlbrew делает много за вас и перемещает символические ссылки, чтобы сделать одну из них perl по умолчанию. Я не использую его, потому что это не облегчает мне жизнь. Это зависит от вас самих.
Ответ 2
Разделите их в свои собственные каталоги, зависящие от версии, а затем символическую ссылку perl
на версию, которую вы хотите использовать в то время. Таким образом, использование нескольких JRE/JDKs работает, поэтому, похоже, это также имеет смысл для установок Perl.
Ответ 3
Вам действительно нужно установить разные версии в разные каталоги.
Когда я хочу попробовать несколько версий пакета, который не существует в качестве пакетов для моего любимого дистрибутива Linux, я использую stow
или xstow
как менеджер пакетов с бедными людьми:
- Создать каталог
/usr/local/stow
- Установите отдельные пакеты в
/usr/local/stow/$PACKAGE-$VERSION
- отобразите "пакет" в
/usr/local
: stow -d /usr/local/stow $PACKAGE-$VERSION
- деактивировать "пакет":
stow -d /usr/local/stow -D $PACKAGE-$VERSION
stow
выполняет свою работу, создавая и манипулируя символическими ссылками, и обнаруживает конфликты.
Ответ 4
Если вы используете сервер CentOS/RHEL, вы можете использовать относительно новую систему Software Collection для установки других версий Perl в дополнение к "системному Perl" (который является древним 5.10 на EL6 и 5.8 на EL5).
Существуют общедоступные репозитории для базового набора пакетов Perl 5.16:
http://mirror.centos.org/centos/6/SCL/x86_64/
Сообщество работает над публикацией большего подмножества CPAN в качестве устанавливаемых пакетов и публикации коллекций для других версий Perl.
Ответ 5
Мы разрабатываем с несколькими версиями Perl здесь на работе, и отдельные каталоги - это путь. Мы создали небольшую команду оболочки, которая исправляет символические ссылки и переменные среды, поэтому вы можете легко использовать perl, который вы хотите легко.
Если вы беспокоитесь о том, чтобы забыть, какой perl используется, вы можете добавить такой номер script в приглашение вашей оболочки.
Ответ 6
При установке в разные каталоги обычно лучше всего идти, вы можете использовать Configure switch -Dversiononly
для использования одного каталога и включать триплет версии во всех путях (за исключением файлов man, которые вы, вероятно, захотите избегайте установки вообще),
давая вам, например, perl5.10.0
, cpan5.10.0
, perldoc5.10.0
и т.д.