Иногда выполняемая команда жалуется на отсутствие зависимости в системе.
Из имени файла в сообщении об ошибке часто невозможно точно определить, какой пакет необходимо установить для устранения зависимости.
Подобно пакету yum – install, который содержит определенный файл в дистрибутивах на основе RHEL, Debian / Ubuntu также предлагает утилиту для поиска в хранилище пакетов пакетов, в которых будут установлены определенные файлы.
Эта утилита не устанавливается по умолчанию и называется «apt-file».
Для установки «apt-file» выполните следующую команду.
$ sudo apt-get install apt-file
Утилита «apt-file» использует для поиска индекс, предоставленный различными репозиториями.
Этот индексный файл должен быть загружен до начала первого поиска и, вероятно, должен время от времени обновляться для получения точных результатов.
Это команда «update», используемая для выполнения этого обновления индексов.
$ apt-file update ... Downloading Index http://security.ubuntu.com/ubuntu/dists/xenial-security/Contents-amd64.diff/Index: No Index available. Downloading complete file http://security.ubuntu.com/ubuntu/dists/xenial-security/Contents-amd64.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 4409k 100 4409k 0 0 1893k 0 0:00:02 0:00:02 --:--:-- 1893k Ignoring source without Contents File: http://archive.canonical.com/ubuntu/dists/xenial/Contents-amd64.gz
Обратите внимание, что не все репозитории предоставляют такой индексный файл.
При обновлении индекса apt-файла будут указаны репозитории, которые не предоставляют такой индекс.
С помощью недавно обновленного индекса можно выполнить первый поиск.
Давайте узнаем пакет, который устанавливает hkt, утилиту для проверки ключей OpenPGP / GnuPG.
Команда find используется для поиска по индексам
Когда для поиска программы добавляется «bin/», результаты будут соответствовать пути, на который установлена программа.
$ apt-file find "bin/hkt" hopenpgp-tools: /usr/bin/hkt
В приведенном выше примере совпадение найдет программу, если она находится в каком-либо каталоге «bin/» или «sbin/», что позволяет найти любую исполняемую программу, которая устанавливается в расположение по умолчанию для исполняемых файлов.
$ dpkg -L hopenpgp-tools /. /usr /usr/share /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/hopenpgp-tools /usr/share/doc /usr/share/doc/hopenpgp-tools /usr/share/doc/hopenpgp-tools/copyright /usr/share/doc/hopenpgp-tools/changelog.Debian.gz /usr/bin /usr/bin/hot /usr/bin/hkt /usr/bin/hokey
Приведенная выше команда показывает, как вы можете затем использовать «dpkg», чтобы показать остальные файлы, которые будут установлены вместе с пакетом.