Как установить зависимости скрипта Perl? - PullRequest
5 голосов
/ 08 июня 2011

Я пытаюсь запустить демон, работающий на Perl, и файл называется ffencoderd.pl.Каждый раз, когда я запускаю его, в нем говорится, что файл отсутствует, например Can't Locate IO/Scalar.pm.

. Поэтому я захожу на CPAN.org и нахожу файл и устанавливаю его.Единственная проблема в том, что я только что установил 6 файлов, и я беспокоюсь, что их может быть еще 20.Вместо того, чтобы продолжать запускать ffencoderd.pl и обнаруживать, что мне нужно установить другой файл, мне было интересно, есть ли способ обновить perl.Являются ли эти файлы стандартными в правильно установленном Perl?Пример: Config-General-2.50, Pod-Xhtml-1.61, libxml-enno-1.02 и т. Д.

Ответы [ 3 ]

8 голосов
/ 08 июня 2011

Обновление Perl не поможет вам, потому что отсутствующие модули не являются частью основного дистрибутива Perl;они должны быть установлены отдельно.Такие инструменты, как cpanm , помогут вам установить модули (учитывая список необходимых модулей), но они не могут посмотреть скрипт и выяснить, какие модули ему нужны.Автор сценария должен был сделать это, но, очевидно, этого не сделал. Обновление: Если вы говорите о об этом ffencoderd.pl , автор перечислил необходимые модули .Вам необходимо установить IPC :: ShareLite, Config :: General, SOAP :: Lite, XML :: DOM, XML :: Simple, Pod :: WSDL, Pod :: Xhtml и HTML :: Template.

Самый простой способ установить это - установить cpanm и затем набрать:

cpanm IPC::ShareLite Config::General SOAP::Lite XML::DOM XML::Simple Pod::WSDL Pod::Xhtml HTML::Template

Если у вас не было списка модулей для установки, этот вопрос о выяснении зависимостей скрипта.В моем ответе вы найдете скрипт, который использует Module :: ExtractUse для перечисления зависимостей скрипта.Единственные модули, которые вам нужно установить, это Module :: ExtractUse и Module :: CoreList (если у вас его еще нет).Вам нужно немного настроить сценарий для вашей ситуации.

2 голосов
/ 08 июня 2011

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

Существуют различные утилиты, которые автоматически устанавливают модули и отслеживают зависимости для вас.Например, cpan и cpan минус . local :: lib позволит вам установить их в определенную директорию (которую вы можете добавить в переменную окружения PERL5LIB), если вы хотите избежать общесистемной установки (как root).

Обратите внимание, что некоторые модули (например, те, которые используют libxml) зависят от устанавливаемых не-Perl библиотек.

Если вы действительно хотите обновить Perl, вы можете посмотреть на perlbrew , которыйпоможет вам установить несколько версий Perl бок о бок.

2 голосов
/ 08 июня 2011

Обновление Perl должно быть сделано через ваш пакет Maganger.Установка модуля для perl из CPAN должна выполняться утилитой CPAN, доступ к которой обычно осуществляется с помощью команды, аналогичной команде perl -MCPAN -e shell.CPAN обработает требования к пакету и обеспечит правильную установку.

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