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$
Работает!