Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
Перейти к: навигация, поиск

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$

Работает!

Источник — «http://wiki.altlug.ru/Apt-file»
Личные инструменты