Как мне установить более одной версии Perl?

Я хочу установить, из источника, версии Perl 5.005, v5.6, v5.8, v5.10

Прямо сейчас у меня установлена ​​версия v5.10.0.

/ Opt / Perl / бен
/ Опт / Perl / HTML
/ Opt / Perl / Библиотека
/ Опт / Perl / человек
/opt/perl/lib/5.10.0
/ Opt / Perl / Библиотека / site_perl
/opt/perl/lib/site_perl/5.10.0

Будут ли у меня проблемы, если я установлю их все в /opt/perl?

Или я должен разделить их на свои, специфичные для версии, каталоги? подобно /opt/perl-5.10.0/

6 ответов

Решение

Я полностью устанавливаю все свои perl в их собственную директорию, чтобы они ничего не делили с любым другим perl. Чтобы сделать это, вы просто говорите Configure скрипт где все установить. Мне нравится / usr / local / perls:

 % ./Configure -des -Dprefix=/usr/local/perls/perl-5.x.y

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

% ls -1 / usr / local / perls
жемчужно-5.10.0
жемчужно-5.10.1
Perl-5.6.2
Perl-5.8.8

Все они имеют свои собственные каталоги bin и lib:

% ls -1 /usr/local/perls/perl-5.10.0
бункер
Lib
человек

Большинство распространенных инструментов определят, что делать, если вы вызываете их с разными perl:

/usr/local/perls/perl-5.10.0/bin/perl /usr/local/bin/cpan

Тем не менее, вы можете взять Perl, который вы хотите использовать чаще всего, и поставить его первым на своем пути. Я просто делаю символическую ссылку на / usr / local / bin / perl, но вы также можете добавить каталоги в PATH.

Perlbrew делает много за вас и перемещает символические ссылки, чтобы сделать одну из них perl по умолчанию.

Разделите их на свои собственные каталоги, зависящие от версии, а затем символическую ссылку perl до версии, которую вы хотите использовать в то время. Вот как работает несколько установленных JRE /JDK, поэтому, похоже, это имеет смысл и для установок Perl.

Вы действительно должны установить разные версии в разные каталоги.

Когда я хочу попробовать несколько версий пакета, который не существует в качестве пакетов для моего любимого дистрибутива 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 выполняет свою работу, создавая символические ссылки и манипулируя ими, и способен обнаруживать конфликты.

Если вы используете серверы CentOS/RHEL, вы можете использовать относительно новую систему сбора ПО для установки других версий Perl в дополнение к "системному Perl" (который является древним 5.10 на EL6 и 5.8 на EL5).

Существуют общедоступные репозитории для основного набора пакетов Perl 5.16:

http://mirror.centos.org/centos/6/SCL/x86_64/

Сообщество работает над публикацией большего подмножества CPAN в виде устанавливаемых пакетов и публикаций коллекций для других версий Perl.

Здесь мы работаем с несколькими версиями Perl, и отдельные каталоги - это путь. Мы настроили небольшую команду оболочки, которая исправляет символические ссылки и переменные окружения, чтобы вы могли легко использовать нужный вам Perl.

Если вы беспокоитесь о том, чтобы забыть, какой Perl используется, вы можете использовать такой скрипт, чтобы добавить номер версии в приглашение оболочки.

Хотя установка в разные каталоги обычно является лучшим способом, вы можете использовать переключатель Configure -Dversiononly использовать один каталог и включать триплет версии во все пути (кроме файлов man, которые вы, вероятно, не захотите устанавливать вообще), предоставляя, например, perl5.10.0, cpan5.10.0, perldoc5.10.0, так далее.

Другие вопросы по тегам