2012-04-20 5 views
1

У меня есть сервер Linux, у которого нет доступа к Интернету (доступ предотвращается брандмауэром). Я хотел бы установить новый Perl. Каковы мои варианты и как лучше всего это сделать? Система Perl (включенная в установку ОС) должна оставаться неизменной.Как установить Perl в автономном режиме

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

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

Могут также быть другие способы установки, о которых я в настоящее время не знаю. И, конечно, я могу придерживаться системы Perl, но это устаревшая версия, и я уже использую новые синтаксические функции. Или я мог бы начать переговоры, чтобы изменить политику брандмауэра, чтобы разрешить доступ в Интернет для perlbrew.

+0

Возможно, это было бы лучше на [Unix SE] (http://unix.stackexchange.com). – cjm

ответ

2

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

% ./Configure -des -Dprefix=/path/to/installation 
% make install 

После этого, все для этого Perl находится в этом пути установки.

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

+1

Помимо первоначальной установки, использование [App :: perbrew] (https://metacpan.org/module/App::perlbrew) предлагает множество приятных удобств. – JRFerguson

+0

Я не думаю, что переключатель - это удобство вообще. –

+0

Хотя я согласен с тем, что 'switch' не так полезен, мне нравится опция' exec' для запуска со всеми установленными Perls и опцией 'use', чтобы временно использовать альтернативный Perl. YMMV :-) – JRFerguson

5

Но все шаги, вовлеченные в perlbrew, кажется, требует доступа в Интернет

Не, если правильно настроен.

Чтобы установить сам perlbrew в автономном режиме, установите App-perlbrew dist. После its dependencies ручная работа, поэтому вместо этого prepare a MiniCPAN mirror-p, чтобы включить тюнинг Perl), переведите его на целевую машину и configure CPAN to use the local mirror. Запустите cpan App::perlbrew для установки.

После установки perlbrew запустите свой mirror command, чтобы настроить зеркало CPAN на $PERLBREWROOT/Config.pm. Отредактируйте этот файл, чтобы изменить его на локальное зеркало MiniCPAN. Drop Perl dist tarballs в $PERLBREWROOT/dists/.


Имейте в виду, что компиляция Perl требует утилит компилятора рабочей C, и, при необходимости файлы разработки для libdb (BerkeleyDB) и GDBM. (Прочитайте файл INSTALL однажды закончится, даже если автоконфигурация perlbrew-х и configure.SH по умолчанию в Perl скрыть эти данные от вас.)

Набор инструментов компилятора, вероятно, гораздо более сложно получить в автономном режиме, если установка ОС уже не была использована, прежде для компиляции другого материала C.

1

Рассматривали ли вы нападение на него в другом направлении? Сохранение этой актуальности будет больно, если вам нужно каждый раз запрашивать доступ в Интернет. Аналогичным образом, если вы упустили/неправильно сконфигурировали любые пакеты в зеркале CPAN, это сложно исправить, если вы на самом деле пытаетесь их использовать.

Возможно, просто постройте небольшую виртуальную машину с вырезанным linux + perl + modules. Будьте в курсе последних событий и просто возьмите все на USB-накопитель. У вас будет известная работающая простая в установке установка.

0

Что я лично делаю, это использовать git checkout, когда я в автономном режиме (а не в отпуске). После того как вы весь каталог мерзавец работы, это тривиально, чтобы построить какую-либо выпущенную версию, проверяя тег:

git checkout v5.17.4 
git clean -f # cleanup previously compiled .o files etc 
sh ./Configure ... 

В зависимости от того, как вы можете передавать файлы на компьютер, это может быть удобно, так как вы вы также можете настроить частный git repo там, чтобы другой компьютер мог git push новых коммитов туда.

+0

Это может быть очень удобно, если вам нужно несколько разных версий Perl, а git также позволяет вам продвигать свои версии в локальной сети. Вы также можете управлять своими модулями CPAN, см. Http://www.effectiveperlprogramming.com/blog/60. – VolkA

 Смежные вопросы

  • Нет связанных вопросов^_^