Как установить Perl в автономном режиме
У меня есть сервер Linux, который не имеет доступа к Интернету (доступ запрещен брандмауэром). Я хотел бы установить новый Perl. Какие у меня варианты и как лучше всего это сделать? Системный Perl (включенный в установку ОС) должен остаться без изменений.
Я использовал perlbrew и считаю, что это лучший способ сделать онлайн-установку. Но все этапы Perlbrew, по-видимому, требуют доступа в Интернет: вы загружаете его из сети, он загружает новые версии Perl из сети и т. Д., И я не нашел, как заставить его работать в автономном режиме.
Если о perlbrew не может быть и речи, я мог бы собрать Perl из исходного кода в специальном месте на сервере. Я предполагаю, что это может оказаться сложным, трудоемким и подверженным ошибкам. И каждый раз, когда я обновляю Perl, я делаю новую сборку вручную.
Также могут быть другие способы установки, о которых я не знаю в настоящее время. И, конечно, я мог бы придерживаться системного Perl, но это устаревшая версия, и я уже использую новые функции синтаксиса. Или я мог бы начать переговоры об изменении политики брандмауэра, чтобы разрешить доступ в Интернет для perlbrew.
4 ответа
В Perlbrew нет ничего особенного. Если вы не собираетесь использовать его для загрузки исходных текстов Perl, это не сильно вас спасет. Если у вас есть исходники Perl, вам просто нужно настроить и установить их:
% ./Configure -des -Dprefix=/path/to/installation
% make install
После этого все для этого Perl находится под этим путем установки.
Я не люблю perlbrew в основном потому, что он скрывает от людей, насколько удивительно проста эта задача, поэтому они чувствуют, что не могут сделать это самостоятельно.
Но все этапы Perlbrew требуют доступа в интернет.
Нет, если правильно настроен.
Чтобы установить perlbrew в автономном режиме, установите App-perlbrew dist. Следить за зависимостями вручную - непростая задача, поэтому вместо этого подготовьте зеркало MiniCPAN (с -p
включить диски Perl), перенесите его на целевой компьютер и настройте CPAN для использования локального зеркала. Бежать cpan App::perlbrew
установить.
После установки perlbrew запустите его mirror
Команда для настройки зеркала CPAN в $PERLBREWROOT/Config.pm
, Отредактируйте этот файл, чтобы изменить его на локальное зеркало MiniCPAN. Перетащите тарболы Perl в $PERLBREWROOT/dists/
,
Имейте в виду, что для компиляции Perl требуется работающий инструментарий компилятора C и, опционально, файлы разработки для libdb (BerkeleyDB) и gdbm. (Читать INSTALL
файл один раз, хотя автоконфигурация perlbrew и Perl configure.SH
по умолчанию скрыть эти детали от вас.)
Инструментальную цепочку компилятора, вероятно, гораздо сложнее приобрести в автономном режиме, если только установка ОС ранее не использовалась для компиляции других компонентов языка Си.
Вы рассматривали возможность атаковать его с другой стороны? Постоянное обновление информации будет проблематичным, если вам придется каждый раз запрашивать доступ в Интернет. Аналогично, если вы пропустили / неправильно сконфигурировали какие-либо пакеты в своем зеркале CPAN, это трудно исправить, когда вы на самом деле пытаетесь их использовать.
Возможно, просто создайте небольшую виртуальную машину с урезанными модулями linux + perl +. Держите это в актуальном состоянии и просто записывайте все на USB-накопитель. У вас была бы известная простая в установке установка.
Что я лично делаю, так это использую git checkout, когда я в автономном режиме (а не в отпуске). Как только у вас есть весь рабочий каталог git, создать любую выпущенную версию тривиально, проверив теги:
git checkout v5.17.4
git clean -f # cleanup previously compiled .o files etc
sh ./Configure ...
В зависимости от того, как вы можете передавать файлы на ваш хост, это может быть удобно, так как вы можете также настроить там личное git-репо, чтобы другой компьютер мог git push
новый совершает там.