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

Dan*_*oca 12 configuration package-management

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

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

Mar*_*ski 18

cat如果我正确理解您的意图,则无需使用任何其他内容:

cat /var/lib/dpkg/info/<package>.conffiles
Run Code Online (Sandbox Code Playgroud)

应该给你你想要的。例如对于包 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
Run Code Online (Sandbox Code Playgroud)

关于给定包没有此类文件的情况 - 由包维护者指定某些文件作为配置。如果这没有正确完成,您应该在适当的地方提交错误。

在这种情况下,您有几个选择。

  1. 列出属于 /etc/ 中的包的文件:

    dpkg -L package | grep '/etc'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 获取并检查源包以了解它是如何编译的(它还应该向您显示它期望的配置文件所在的位置)。

    apt-get source package
    less package-x.y.z/debian/rules
    
    Run Code Online (Sandbox Code Playgroud)
  3. 查找上游项目页面以查找文档。