如何列出已经安装的软件包的所有配置文件?


11

我正在运行Ubuntu 12.10,并且,如果可能的话,我想获取已安装的给定软件包可用的配置文件列表。

如果可能,我宁愿使用dpkg或apt来执行此操作,但是如果需要/推荐使用其他工具(如aptitude或dselect)则没有问题。

Answers:


16

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. 查找上游项目页面以查找文档。


如果给定的软件包在此路径下没有这样的文件.conffiles,是否表示它没有使用配置文件?
Daniel Yuste Aroca

不一定-程序包确实使用了配置文件,但打包程序未将任何文件指定为打包的应用程序的配置文件的一部分。
Marcin Kaminski 2013年

该.conffiles文件将列出所有配置文件附带的包装和包装者被标记为此类。自动安装但没有出现的错误是打包错误,但是请注意,某些文件(尤其是用户dotfile中特定于用户的配置)无法随包一起提供,并且除非您已经知道了什么,否则无法真正找到该文件他们是。
Darael

1

例如,让我们测试该软件包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.confapt在此情况下,您可以从此处调用配置文件的位置:/etc/apt/apt.conf

但是,配置文件/etc/apt/apt.conf可能甚至不存在。搜索配置文件时要注意这一点。

在Linux中,配置文件应位于/etc/目录中。您可以dpkg-query -L your_package | grep etc用来列出目录中的所有软件包文件和/etc/目录。


1

dpkg -S [package-name]怎么样?不能在这里提到它。

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
....

有时取决于文件名的结构,如果将其输送到包含“ .conf”的grep名称,则可能会更好:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.