Как узнать, какой пакет содержит какой-то модуль 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
Вы можете использовать поиск на packages.ubuntu.com Например
Из консоли whereis PACKAGE_OR_COMMON_FILE
: он напечатает любое вхождение системного файла.
Если у вас есть aptitude
использовать: aptitude search PACKAGE_NAME
, Если он присутствует, выполните aptitude
найди это с search
вариант и нажмите ENTER
чтобы увидеть больше информации.
Если вам нужна информация о модуле, используйте cpan -D module
,