我收到“dpkg-query:未找到匹配模式的路径”该如何解决这个问题?
我做了以下事情
更新包索引:
sudo apt-get update
安装 libdigest-md5-file-perl deb 包:
sudo apt-get install libdigest-md5-file-perl
当我尝试安装 libdigest-md5-file-perl 时,它说 libdigest-md5-file-perl 已经是最新版本
答案1
安装生成的文件是导致此错误消息的常见原因,如下所述:https://unix.stackexchange.com/questions/159001/how-to-find-the-package-that-installed-a-comand-if-dpkg-s-finds-no-path-beca
例如,/bin/nc
安装包时出现netcat-openbsd
。
但:
dpkg -S /bin/nc
我们得到了dpkg-query: no path found matching pattern /bin/nc
。
发生这种情况是因为由调用/bin/nc
生成update-alternatives
postinst 脚本安装后运行。
其之所以能如此工作是因为/bin/nc
该包提供了另一个版本netcat-traditional
。
我认为没有通用的方法来查找此类生成的文件。在替代符号链接的特定情况下,我们只需使用以下命令跟踪链接readlink -f
:
dpkg -S "$(readlink -f /bin/nc)"
答案2
如果您尝试查找实际提供这两个文件的包/etc/hosts
,/proc/1976
那么就会出现此错误。
$ dpkg -S /etc/hosts
dpkg-query: no path found matching pattern /etc/hosts
$ dpkg -S /proc/1976
dpkg-query: no path found matching pattern /proc/1976
因为没有任何软件包旨在提供这两个文件。
在我看来,您在脚本中添加了上述两个命令,因此出现了错误。