Debian everything-in-usr 目录方案 (usrrmerge) 破坏了 dpkg -S。解决办法吗?

Debian everything-in-usr 目录方案 (usrrmerge) 破坏了 dpkg -S。解决办法吗?

我习惯于dpkg -S /path/to/file在 Debian 上找出某些东西来自哪里。 〜新“usr 中的所有内容”AKA 用户合并策略经常打破这一点。仅举个例子:

> dpkg -S /bin/systemd
systemd: /bin/systemd
> readlink -f /bin/systemd
/usr/lib/systemd/systemd
> dpkg -S /usr/lib/systemd/systemd
dpkg-query: no path found matching pattern /usr/lib/systemd/systemd

这很糟糕,因为实际运行的可执行文件是 /usr/lib/systemd/systemd 所以我更有可能想知道在任何给定的dpkg -S.是否有另一个 usrmerge 感知替代品dpkg -S可以用来轻松可靠地将可执行文件跟踪回其包?

答案1

我不知道任何/usr-merge-aware 相当于dpkg -S,但有一种方法可以避免这个问题:dpkg -S不需要完整路径,所以

dpkg -S lib/systemd/systemd

dpkg -S bin/systemd

将为您提供您正在寻找的答案。如果您想避免将与给定模式匹配的所有文件作为子字符串列出,请添加*

dpkg -S '*lib/systemd/systemd' '*bin/systemd'

也可以看看dpkg-query:找不到匹配模式 /usr/bin/bash 的路径, 和/usr合并的描述(由维护者编写)它解释了所涉及的一些约束,并列出了包方法(包括)所破坏的dpkg许多功能。dpkgusrmergedpkg -S

相关内容