Подтвердить что ты не робот

Как установить несколько версий 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/

4b9b3361

Ответ 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 и т.д.