在 Synology NAS(使用“自制”*nix 变体(可能基于 Debian?))上,我安装了 ipkg 软件包管理器。当我尝试像这样的命令时
ipkg search shred
或者
ipkg search *shred*
它只返回单行:
Successfully terminated
没有任何包名称。
我在示例中专门使用了 shred,因为我知道 shred 适用于我的平台,并且是 coreutils 包的一部分(因此应该返回该答案。)
出了什么问题?这是一个错误、我的语法错误还是可能有其他问题?
编辑 -
我找到了答案 - 文件名需要用单引号括起来,例如
ipkg search '*shred*'
这将返回正确的答案 - coretutils。
我还发现 Pavel 是正确的,它只返回信息已安装包,这不是我需要的。
如果我需要一个属于更大集合的给定程序/util,但不知道哪个包包含它,我将如何找到要安装的 pkg?
(这是允许的还是我应该开始另一个问题?)
答案1
我认为包元数据不包括文件列表。我相信ipkg search
只是为了获取包名称已安装文件,类似于rpm -qf
.您可能需要提供已安装文件的完整路径。
当寻找相关信息时核心工具包,您可能想尝试以下操作:
ipkg info coreutils
ipkg status coreutils
ipkg files coreutils
您还可以看到已安装和未安装的软件包的结果有何不同。
当搜索提供特定文件的已安装包时,您可以使用:
ipkg search /path/to/installed/file
正如您在编辑的问题中指出的那样,您必须使用星号如果您不想指定完整路径名,例如:
ipkg search \*file
ipkg search '*file'
在我看来,您无法获取不存在或尚未安装的文件的信息。
您可能还需要检查是否有已下载的包的元数据并下载它们:
ipkg update
如果我需要一个属于更大集合的给定程序/util,但不知道哪个包包含它,我将如何找到要安装的 pkg?
ipkg由于没有数据,无法在这里为您提供帮助。我认为您的发行版没有类似的工具apt-file
可以作为解决方案。在这种情况下,您通常需要恢复使用网络搜索来获取此类信息。
资料来源:
免责声明:我只使用奥普克在 OpenWRT 上,非常接近ipkg。