Установка модулей Perl с большим количеством зависимостей на компьютере без доступа к сети CPAN
Я пытаюсь установить машину DateTime на сервер Linux. К сожалению, этот сервер Linux имеет некоторую политику ограниченного доступа к сети, которая запрещает мне использовать оболочку CPAN непосредственно для загрузки содержимого или установки cpanminus. Изменение политики доступа вне моего контроля, поэтому я ищу обходной путь. У меня также нет корневого доступа к этому серверу Linux.
Я могу, однако, загрузить что-нибудь на оконную машину моей работы и загрузить в файловый ресурс на этот сервер. Поэтому я начал один за другим удалять зависимости DateTime. Я бы загрузить модуль, то он будет иметь Makefile.PL иногда это будет Build.PL. Потом перебазироваться каждой сборки или Makefile для моего INSTALL_BASE, тест каждого модуля. Я сделал это примерно для 20 модулей,и деревья, похоже, расширяются до все меньших классов без конца...
Я надеюсь, что вы можете сказать мне, лучший способ. Есть ли способ, которым я могу инициировать загрузку с машины с доступом CPAN (т. е. мой Windows box) всех зависимостей DateTime в один гигантский пакет Perl, загрузите его на сервер Linux и запустите CPAN там (без доступа к сети), чтобы поместить вещи в нужное место? Спасибо.
4 ответов
первым шагом является автоматическая загрузка всех зависимостей. Вы можете использовать cpanm
чтобы сделать это на подключенной к сети машине:
cpanm -L /dev/null --save-dists dists --scandeps DateTime
это генерирует список зависимостей, но, что более важно, загружает их в
одно решение, которое я использую на работе, - это иметь сервер разработки с perlbrew, один Perl + модули и приложение на приложение и все это в репозитории git. На производственных машинах доступ к репозиторию git-это все, что нужно для развертывания приложения и переключения между версиями с помощью тегов.