Как установить 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 новый совершает там.

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