我从包管理器安装了 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 脚本删除。