Как я могу сказать, каким модулям первоначально предоставили определенную установку Perl на машине?

Как я могу сказать, каким модулям первоначально предоставили определенную установку Perl на машине?

(Это не дубликат: Как я могу сказать, является ли модуль Perl ядром или частью стандартной установки? ("Как я могу сказать, является ли модуль Perl ядром или частью стандартной установки?") - это - на самом деле вопрос об ответвлении от него),

Я ищу то, что шло с установкой первоначально, какие модули были обеспечены как часть той установки, что было встроено. НЕ, что было установлено с тех пор.

Я хотел бы, чтобы это работало с любой версией Perl.

Я хочу смочь сделать это:

  • использование сценария в рамках самой/команды программы Perl на машине, которая имеет установку. Таким образом для этого я положился бы на установку, чтобы иметь запись в некоторой форме относительно того, что она имеет первоначально.
  • на загруженном пакете, прежде чем я сделаю установку. Спросите это, какие модули это имеет.

Причины, почему я хочу сделать, это:

  • Я хочу знать, какие модули я могу ожидать как значение по умолчанию при записи программного обеспечения для работы машины с установкой Perl, и какие модули я должен был бы добавить, которые не являются значением по умолчанию
  • если я сохраняю исходное изображение/пакет установщика ИЛИ знаю, как получить точную вещь снова онлайн, то у меня есть повторяемая последовательная установка Perl для нескольких машин со знанием того, какие модули будут присутствовать и какие модули не будут.
  • мое программное обеспечение Perl будет иметь четко определенную процедуру развертывания, поскольку легко определить точно, что требуется программным обеспечением
  • Я не могу просто обновлять/обновлять версию Perl легко из-за политик на месте в моей организации (это - просто способ, которым это, я не хочу обсуждение стороны этого). Такая политика может быть выровнена по ширине, поскольку всегда существует обновление риска до нового программного обеспечения, которое может перевесить преимущества. Разработчики поэтому должны знать то, что они могут ожидать быть доступными.

Причина, почему я задаю этот вопрос, состоит в том, потому что для любой версии Perl, кажется, не существует автоматизированный способ узнать полное стандартное определение установки, какие модули можно ожидать присутствовать в стандартной установке на машине - посмотрите вопрос: Как я могу сказать, является ли модуль Perl ядром или частью стандартной установки? ("Как я могу сказать, является ли модуль Perl ядром или частью стандартной установки?")

На версии Perl нельзя положиться, чтобы сказать Вам, какие модули присутствуют или нет. Несомненно, могла бы быть документация онлайн, которая говорит Вам. Но мне нужен автоматизированный способ сделать это на выпуске, который я загружаю/устанавливаю. Даже та же версия Perl на различных дистрибутивах Linux/Unix может отличаться.

7
задан Community 23 May 2017 в 10:28
поделиться

3 ответа

В общем вы не можете. Вы будете иметь намного меньше разочарования, если принять это и подойти к проблеме с другого угла. Модуль :: CoreList предоставляет список того, что должен включен во всех установках как минимальный минимум, но поставщики не обязаны придерживаться этого, и большинство распределений включают в себя множество модулей, которые ren ' T часть ядра. За исключением вашей собственной базы данных о том, что было включено в какую версию каждого распределения - непростой задачей - не так много надежды. Обратите внимание, что даже для модулей, которые пришли с распределением, установленная версия может быть разной.

Я вижу несколько разных способов приблизиться к этому:

  1. , если вы знаете свою цель во время разработки (например, Версия ActivePerl) Вы можете принимать решения на основе этого.
  2. Для общего случая разверните ваше приложение, как модуль и укажите зависимости. например Использовать Модуль :: Build и список предварительных условий в Требуется раздел Сценария Build.pl. CPAN CPAN Shell может следовать и разрешать зависимости автоматически.
  3. Если вы хотите отосмотреть вопрос, полностью используйте и PAR :: Packer Создайте автономные развертывающие пакеты.
6
ответ дан 6 December 2019 в 21:14
поделиться

Ищу, что пришло с Установка Первоначально, какие модули были предоставлены как часть этого Установка, что было встроено. НЕТ Что было установлено с тех пор.

Может быть, для непрофильных модулей вы сможете проанализировать Perllocal.pod, разделив начальную партию модулей, установленных вместе с самой установки Perl от более поздних на основе даты. Вы ищете такие линии, как:

=head2 Wed Apr 30 15:40:38 2008: C<Module> L<URI|URI>

, поэтому первые несколько предположительно будут те, которые были установлены с самой Perl и должны иметь ту же дату (хотя и не одно и то же время). Те, которые установлены в разнице 24 часа или более, будут то, что вы ищете.

Не уверен в основных модулях, так как на мой взгляд, ответы, которые вы получили в предыдущем вопросе, вы связаны, являются удовлетворительными, но ясно, что вы так не думали. Наверное, я что-то упускаю:)

ура, Предложение

0
ответ дан 6 December 2019 в 21:14
поделиться

Для Debian или Ubuntu вы можете использовать

$ dpkg --listfiles perl | grep '\.pm$'

для Redhat:

$ rpm -ql perl | grep '\.pm$'
6
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: