dpkg-query 未显示从软件包安装的所有文件

dpkg-query 未显示从软件包安装的所有文件

我从包管理器安装了 postgresql

sudo apt-get install postgresql postgresql-contrib

我想知道它安装了哪些文件,包括任何启动脚本或对任何 shell 脚本的修改。

当我运行 dpkg-query 时,输出如下:

# dpkg-query -L postgresql
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/postgresql
/usr/share/doc/postgresql/changelog.gz
/usr/share/doc/postgresql/copyright

如您所见,它没有列出很多关键文件,包括(但不限于):

/usr/lib/postgresql (the binaries)
/var/lib/postgresql (the data directory and the database initialization via initdb)
/etc/postgresql (the configuration files)
/var/log/postgresql (the log file)

我还想知道它对全局启动脚本做了哪些更改,以便能够在操作系统启动时加载它。

为什么 dpkg-query 的输出中缺少所有这些重要细节,我如何列出这些信息?

答案1

那么问题是什么?

返回安装

$ sudo apt-get install postgresql postgresql-contrib

会给你提示

The following NEW packages will be installed:
  postgresql postgresql-9.1 postgresql-client-9.1 postgresql-client-common
  postgresql-common postgresql-contrib postgresql-contrib-9.1

因此,您必须知道并非所有指定的文件都与此相关,postgresql而应该搜索所有这些包

dpkg-query -L postgresql postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common postgresql-contrib postgresql-contrib-9.1

现在您可以找到所有文件。

为了证明我所说的话

 $ dpkg -S /usr/lib/postgresql/9.1/bin/psql

postgresql-client-9.1: /usr/share/postgresql/9.1/man/man1/psql.1.gz
postgresql-client-common: /usr/bin/psql
postgresql-client-9.1: /usr/share/postgresql/9.1/psqlrc.sample
postgresql-client-9.1: /usr/lib/postgresql/9.1/bin/psql

这是 /usr/lib/postgresql/* 中文件的示例,它证明它不在 postgresql 包中,因此您可以搜索哪个包

感谢@steeldriver 的评论:

此外,可能存在不属于任何软件包内容的文件,而是由后安装(postinst)脚本动态创建,并在删除软件包时由相应的 postrm 脚本删除。

相关内容