snap 相当于发行什么
apt-file search X11/extensions/XKBrules.h # header file some repo uses who's compile fails as it cannot find this file
# ... above returns with
libxkbfile-dev: /usr/include/X11/extensions/XKBrules.h
上面让我识别哪个 Ubuntu 包libxkbfile-dev
包含文件/usr/include/X11/extensions/XKBrules.h
上面的美妙之处在于它搜索所有包,而不仅仅是那些已经安装的包
如何识别哪个 snap 包包含给定的文件名?(即使我还没有安装那个 snap 包)
在新机器上,为了使上述 apt 文件正常工作,必须运行以下命令来安装所有 Ubuntu 软件包的最新索引
sudo apt install apt-file -y && sudo apt-file update
我正在寻找与此功能等效的 snap 包
... 为什么?一个常见的用例是:如果我正在编译其他人的代码,并且缺少头文件,那么我需要知道要安装哪个包来获取缺少的头文件(假设缺少的文件实际上位于包中,Ubuntu 包中通常如此,并且随着项目迁移到 snap,这种情况会越来越多)
答案1
我在 2018 年报告过两个相关的错误:
- 错误 1748628 -
snap
应提供显示包含在未安装的 snap 中的文件的功能(类似apt-file list
) - 错误 1748633 -
snap
应提供查找包含已知文件(类似apt-file search
)的未安装 snap 的功能
并且都标记为愿望清单因此此功能尚未实现。
理论上,这command-not-found
可能有助于找到具有已知可执行文件的相关快照名称,但我还不知道如何自动化它。
答案2
dpkg --listfiles <pkg>
(-L) 似乎也适用于 Snaps。它可以使用 反向搜索文件中的包dpkg -S <file>
。