Как вывести список всех файлов конфигурации для уже установленного пакета?

Я использую Ubuntu 12.10 и, если возможно, я хотел бы получить список файлов конфигурации, доступных для данного пакета, который уже установлен.

Я бы предпочел сделать это, используя dpkg или apt, если это возможно, но не проблема, если нужны / рекомендуются другие инструменты, такие как aptitude или dselect.

11
задан 10 July 2017 в 19:41

3 ответа

Давайте, например, протестируем пакет apt, чтобы получить файл (ы) конфигурации.

Может быть сложно понять, что .conffiles вы должны проверить, чтобы увидеть информацию, поэтому я предлагаю использовать grep, чтобы найти подсказку.

locate *.conffiles | grep apt

/var/lib/dpkg/info/apt-config-icons.conffiles
/var/lib/dpkg/info/apt.conffiles
/var/lib/dpkg/info/aptdaemon.conffiles
/var/lib/dpkg/info/apturl-common.conffiles
/var/lib/dpkg/info/libatk-adaptor:amd64.conffiles

И cat к любому из них, в частности, если вы заинтересованы в ответе Марцина Камински.

Другой трюк - прочитать руководство, например, man apt приведет вас в раздел СМОТРИ ТАКЖЕ, откуда вы можете позвонить man apt.conf, где вы увидите расположение файла конфигурации для apt в этом случае: [ 118].

Однако файл конфигурации /etc/apt/apt.conf может даже не существовать. Помните об этом при поиске файлов конфигурации.

В Linux файлы конфигурации должны находиться в каталоге /etc/. Вы можете использовать dpkg-query -L your_package | grep etc для вывода списка всех файлов и каталогов пакетов в каталоге /etc/.

0
ответ дан 10 July 2017 в 19:41

Нет необходимости использовать что-либо, кроме cat, если я правильно понял ваше намерение:

cat /var/lib/dpkg/info/<package>.conffiles

должно дать вам то, что вы ищете. Например, для пакета zsh:

% cat /var/lib/dpkg/info/zsh.conffiles
/etc/zsh/zlogin
/etc/zsh/zlogout
/etc/zsh/zprofile
/etc/zsh/zshenv
/etc/zsh/zshrc
/etc/zsh/newuser.zshrc.recommended

Что касается случая, когда такого файла для данного пакета не существует, то его сопровождающий может назначить определенные файлы в качестве конфигурации. Если это не было сделано правильно, вы должны сообщить об ошибке, где это уместно.

В таких случаях у вас есть несколько вариантов.

  1. Список файлов, принадлежащих пакету, которые находятся в / etc /:

    dpkg -L package | grep '/etc'
    
  2. Извлечь и проверить пакет с исходным кодом, чтобы узнать, как он был скомпилирован (который также должен показать вам, где он ожидает, что его файлы конфигурации будут найдены).

    apt-get source package
    less package-x.y.z/debian/rules
    
  3. Просмотрите верхнюю страницу проекта, чтобы найти документацию.

0
ответ дан 10 July 2017 в 19:41

Как насчет dpkg -S [имя-пакета]? Не могу видеть, что это упомянуто здесь.

root@homehub:/# dpkg -S nginx

nginx-common: /usr/share/nginx/html
nginx-full: /usr/share/man/man8/nginx.8.gz
libnginx-mod-http-xslt-filter: /usr/share/doc/libnginx-mod-http-xslt-filter/copyright
nginx-common: /etc/logrotate.d/nginx
libnginx-mod-mail: /usr/share/doc/libnginx-mod-mail/changelog.gz
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair
libnginx-mod-http-auth-pam: /usr/share/doc/libnginx-mod-http-auth-pam/changelog.Debian.gz
libnginx-mod-http-image-filter: /usr/lib/nginx/modules/ngx_http_image_filter_module.so
nginx-common: /etc/nginx/snippets
libnginx-mod-mail: /usr/share/doc/libnginx-mod-mail/copyright
nginx-common: /etc/nginx/snippets/fastcgi-php.conf
libnginx-mod-http-xslt-filter: /usr/share/doc/libnginx-mod-http-xslt-filter/changelog.Debian.gz
nginx-full: /usr/share/doc/nginx-full/copyright
nginx-common: /usr/share/doc/nginx-common
nginx-common: /etc/ufw/applications.d/nginx
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair/changelog.gz
libnginx-mod-stream: /usr/share/nginx/modules-available/mod-stream.conf
nginx-common: /etc/nginx/sites-enabled
libnginx-mod-http-upstream-fair: /usr/share/doc/libnginx-mod-http-upstream-fair/copyright
libnginx-mod-http-subs-filter: /usr/share/doc/libnginx-mod-http-subs-filter/changelog.gz
libnginx-mod-http-dav-ext: /usr/share/nginx/modules-available/mod-http-dav-ext.conf
nginx-common: /etc/nginx/koi-utf
nginx-common: /etc/nginx/mime.types
nginx-common: /usr/share/vim/addons/syntax/nginx.vim
nginx-common: /usr/share/doc/nginx-common/NEWS.Debian.gz
nginx-common: /usr/share/doc/nginx-common/README.Debian
nginx-full: /usr/share/doc/nginx-full
libnginx-mod-mail: /usr/share/nginx/modules-available/mod-mail.conf
libnginx-mod-http-auth-pam: /usr/share/doc/libnginx-mod-http-auth-pam/changelog.gz
nginx: /usr/share/doc/nginx
nginx-common: /etc/nginx/win-utf
libnginx-mod-http-dav-ext: /usr/share/doc/libnginx-mod-http-dav-ext
....

И иногда, в зависимости от структуры имени файла, было бы хорошо, если бы он был передан в grep имена, содержащие «.conf»:

root@homehub:/# dpkg -S nginx |grep ".conf"

nginx-common: /etc/nginx/snippets/fastcgi-php.conf
libnginx-mod-stream: /usr/share/nginx/modules-available/mod-stream.conf
libnginx-mod-http-dav-ext: /usr/share/nginx/modules-available/mod-http-dav-ext.conf
libnginx-mod-mail: /usr/share/nginx/modules-available/mod-mail.conf
libnginx-mod-http-auth-pam: /usr/share/nginx/modules-available/mod-http-auth-pam.conf
nginx-common: /etc/nginx/fastcgi.conf
nginx-common: /etc/init/nginx.conf
nginx-common: /etc/nginx/conf.d
libnginx-mod-http-subs-filter: /usr/share/nginx/modules-available/mod-http-subs-filter.conf
libnginx-mod-http-geoip: /usr/share/nginx/modules-available/mod-http-geoip.conf
libnginx-mod-http-echo: /usr/share/nginx/modules-available/mod-http-echo.conf
libnginx-mod-http-upstream-fair: /usr/share/nginx/modules-available/mod-http-upstream-fair.conf
nginx-common: /etc/init/nginx.conf
libnginx-mod-http-xslt-filter: /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
nginx-common: /etc/nginx/snippets/snakeoil.conf
nginx-common: /etc/nginx/nginx.conf
libnginx-mod-http-image-filter: /usr/share/nginx/modules-available/mod-http-image-filter.conf
0
ответ дан 10 July 2017 в 19:41

Другие вопросы по тегам:

Похожие вопросы: