![包文件列表是否应该仅包含分布式文件,或者也包含运行时生成的文件?](https://linux22.com/image/172546/%E5%8C%85%E6%96%87%E4%BB%B6%E5%88%97%E8%A1%A8%E6%98%AF%E5%90%A6%E5%BA%94%E8%AF%A5%E4%BB%85%E5%8C%85%E5%90%AB%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%EF%BC%8C%E6%88%96%E8%80%85%E4%B9%9F%E5%8C%85%E5%90%AB%E8%BF%90%E8%A1%8C%E6%97%B6%E7%94%9F%E6%88%90%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我一直在寻找我的系统上的一些文件来自哪里,例如(为了举一个例子,但问题不特定于此)/etc/udev/hwdb.bin
:
$ pacman -Qo /etc/udev/hwdb.bin
error: No package owns /usr/lib/udev/hwdb.bin
然后搜索,看来很清楚它是由 编译的systemd-hwdb
,它本身是随以下文件一起分发的systemd
(并包含在其文件列表中):
$ pacman -Qo "$(which systemd-hwdb)"
/usr/bin/systemd-hwdb is owned by systemd 245.5-2
我已经在几个不同的包中看到了这一点,起初我认为这只是一个遗漏,它们应该被列出 - 但也许是因为它们是由包含的可执行文件生成的文件,而不是与包本身一起分发?那是对的吗?
因此,如果将假设的包打包为仅下载并安装“真实”包的脚本,那么第一个文件列表将只不过是“installer.sh”?
答案1
Arch Linux 的软件包文件列表包括软件包中包含的文件,这些文件在安装软件包时安装。它们不包括已安装的应用程序可能在您的系统上创建的文件。
例如,Evolution 电子邮件程序的程序包不会列出可以下载到您的系统的每封电子邮件,视频游戏程序包也不会列出用户可能创建的保存游戏文件(两者都有明显的原因) - 它们无法预测)。文件列表包括由包管理器安装和管理的文件。