Как узнать, какой пакет содержит какой-то модуль Perl

Мне нужно установить модуль CPAN на мой компьютер с Ubuntu. Я хочу установить его из пакета deb, поэтому мне нужно выяснить, какой пакет содержит этот модуль.

Иногда решение этой задачи довольно простое. Например, если мне нужно установить File:: Find:: Rule, я просто преобразую имя в нижний регистр, измените :: в - и добавить lib к началу и -perl к концу. Результатом является имя пакета libfile-find-rule-perl:

$ apt-cache search libfile-find-rule-perl
libfile-find-rule-perl - module to search for files based on rules

Но в других случаях это не работает. Я хочу найти пакет deb, содержащий Debian:: AptContents. Но apt-cache search libdebian-aptcontents-perl ничего не находит.

Ну, в случае с Debian:: AptContents я знаю, что он находится в пакете dh-make-perl, но я хочу знать, как найти, какой пакет deb содержит модуль, который мне нужен.

3 ответа

В Ubuntu есть утилита поиска пакетов, которая называется apt-file, Вы можете передать ему имя файла, и он покажет вам пакет, содержащий этот файл. Он ищет не только пакеты, которые установлены в вашей системе, но также и пакеты, которые доступны для установки.

Чтобы узнать пакет deb, содержащий Debian::AptContents, вы должны выполнить:

$ apt-file search Debian/AptContents.pm
dh-make-perl: /usr/share/perl5/Debian/AptContents.pm

Из консоли whereis PACKAGE_OR_COMMON_FILE: он напечатает любое вхождение системного файла.
Если у вас есть aptitude использовать: aptitude search PACKAGE_NAME, Если он присутствует, выполните aptitudeнайди это с search вариант и нажмите ENTER чтобы увидеть больше информации.
Если вам нужна информация о модуле, используйте cpan -D module,

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