apt-file: поисковик файлов в пакетах, как установленных так и нет Оригинальная статья: Paul Sundvall Перевод: Соломин Евгений Пробовали ли Вы когда-нибудь собрать (скомпилировать) какую-нибудь программу из tar архива и сталкивались с загрузкоой пропущенных пакетов от которых ззависит собираемая программа? В этом случае, Вы возможно нуждались в поиске пакетов, которые необходимы для удовлетворения тех зависимостей. Иногда, в README файле заявлено о том, в каких дополниельных пакетах Вы нуждаетесь, но это бывает полезно только иногда. Один способ узнать какой пакет должен быть установлен состоит в использовании ресурса debian package search page. Другой путь состоит в использовании утилиты apt-file. Он работает как локальный поиск, основанный на базах apt, которые у Вас в файле /etc/apt/sources.list. Используя apt-file, нужно создать базу данных для поиска, обновить которую можно из под root'a. Тогда, как обычный пользователь, который ищет файл с помощью apt-file search и получает имена пакетов, которые содержат имя файла который он ищут. Установить пакет можно с помощью apt-get, тем самым зависимости будут унисены ветром! apt-file расположен в пакете apt-file как и в Debian так и в Ubuntu. После установки, создайте базу данных с помощью команды apt-file update. Пример использования apt-file. Я попробовал скомпилировать простой пример, который выдает следуюющее: pauls@voltaire:~/code/eget/all/pam$ make gcc pamexample.c -o pamexample -lpam -lpam_misc pamexample.c:12:31: error: security/pam_appl.h: Filen eller katalogen finns inte pamexample.c:13:31: error: security/pam_misc.h: Filen eller katalogen finns inte [...] Какжется мне нужен неизвестный файл pam_appl.h. Время использовать apt-file! pauls@voltaire:~/code/eget/all/pam$ apt-file search pam_appl.h libpam-doc: usr/share/doc/libpam-doc/html/pam_appl.html libpam0g-dev: usr/include/security/pam_appl.h lsb-build-base2: usr/include/lsb2/security/pam_appl.h lsb-build-base3: usr/include/lsb3/security/pam_appl.h pauls@voltaire:~/code/eget/all/pam$ Кажется мне следует установить libpam0g-dev pauls@voltaire:~/code/eget/all/pam$ su - voltaire:~# apt-get install libpam0g-dev Reading package lists... Done Building dependency tree... Done The following NEW packages will be installed libpam0g-dev 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 118kB of archives. After unpacking 365kB of additional disk space will be used. Get: 1 http://merkel.debian.org unstable/main libpam0g-dev 0.79-4 [118kB] Fetched 118kB in 2s (47.9kB/s) Selecting previously deselected package libpam0g-dev. (Reading database ... 123647 files and directories currently installed.) Unpacking libpam0g-dev (from .../libpam0g-dev_0.79-4_i386.deb) ... Setting up libpam0g-dev (0.79-4) ... voltaire:~#logout Попробуем скомпилировать снова: pauls@voltaire:~/code/eget/all/pam$ make gcc pamexample.c -o pamexample -lpam -lpam_misc pauls@voltaire:~/code/eget/all/pam$ Работает!