Как запустить несколько установок Perl на одной машине? - PullRequest
9 голосов
/ 29 июня 2011

Можно ли запускать несколько установок Perl (в «контейнерах») на одной машине?

Причина в том, что у меня есть разные веб-приложения на стороне Perl, и я хочу планировать обновления для них независимо.

Например, обновления bugzilla мне кажутся очень инвазивными, загружая всевозможные обновления или обновления модулей, а также слишком продолжительными (тем самым увеличивая вероятность непредсказуемого поведения других приложений, зависящих от этих модулей, в течение времени, когдаобновление все еще является частичным).

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

Ответы [ 2 ]

9 голосов
/ 29 июня 2011
7 голосов
/ 29 июня 2011

Легко установить и управлять несколькими perl. Просто установите их в разных местах и ​​используйте инструменты каждого Perl. Я говорю об этом в The Effective Perler .

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

Загрузка и установка не являются проблемой. Вы никогда не нуждались в root или sudo, чтобы сделать это, и если вы сделаете это, вам все еще понадобится это для perlbrew. Вы всегда можете установить в любой каталог, где у вас есть разрешение. Perlbrew не обходит это вообще. Из исходного каталога вы можете запустить две простые команды:

 $./Configure -des -Dprefix=/where/you/want/to/install
 $ make install

Для вас это может означать, что Bugzilla получает свой собственный perl:

 $./Configure -des -Dprefix=/where/you/want/to/install/bugzilla-perl
 $ make install

Оттуда у вас есть полностью автономная установка perl. Когда мне важно, какой Perl я использую, я даю программе полный путь к нему:

 #!/where/you/want/to/install/bugzilla-perl/bin/perl

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

Основным преимуществом perlbrew является не компиляция и установка, а функция switch, позволяющая сделать один perl по умолчанию. Вы, вероятно, не хотите эту функцию, потому что вы хотите, чтобы bugzilla, CGI-программы и т. Д. Использовали только тот Perl, который вы хотите, чтобы они использовали, а не тот Perl по умолчанию, который вы указали последним.

Когда вы хотите обновить bugzilla-perl, просто используйте его инструменты, которые уже настроили строки shebang, чтобы найти правильный perl:

 $ /where/you/want/to/install/bugzilla-perl/bin/cpan ...

Мне не нравятся все эти длинные пути, поэтому я делаю ссылки на них всех . Тогда я могу просто позвонить им по любой схеме именования, которую я выберу, например:

 $ bugzilla-cpan ...

Нет вопроса о том, какой инструмент или версию я использую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...