【问题标题】:Query yum database for package availability查询 yum 数据库以获取软件包可用性
【发布时间】:2012-12-13 15:21:01
【问题描述】:

我正在努力将一组 RPM 软件包整合到一组新的、更有条理的 Yum 存储库中。我已经手动重新打包了其中的一部分并将它们上传到存储库中,但是我有一个更大的集合,可以自动构建和打包,或者具有可从第三方来源获得的更新版本。

我需要能够,给定一个包名称(以及可选的存储库 ID 列表),以编程方式检查它是否已经可用,如果没有,将其上传到存储库。我玩过 repoquery 和 yum search,但对于我的目的来说,它们似乎都没有足够的可编写脚本。

【问题讨论】:

  • 什么是你不能用yum search做的例子?
  • 好吧,假设我在本地有一个包lighttpd-1.4-6.javanix.i686,但我想知道是否应该将它放在我的新存储库中。如果我这样做yum search lighttpd,我会在输出中得到一堆垃圾。有没有办法减少和很好地格式化yum search 的输出,这样我就可以在脚本中使用它而不会打太多?我的最终结果需要是一个 python 或 bash 函数,它返回 0/1 或 True/False 来判断一个包是否可从一组存储库中获得。
  • yum list | grep '^lighttpd\.'怎么样
  • 我写了这篇文章,但它侧重于本地可用性,以及本地的 repo。它们是否将存储在不同的机器上。另外,当您说 repo ids 时,您是指实际 .repo 文件中的 id 吗?

标签: python bash yum repository


【解决方案1】:

我对我的一个脚本有类似的要求。我使用 repoquery 命令检查远程存储库中是否存在特定的包/版本。

使用以下命令,您可以轻松查看特定包(及其所有版本)是否存在。

repoquery --repoid=<myrepository_id> --qf="package|%{name}|%{version}|%{release}|%{arch}" <packagename_of_interest>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    相关资源
    最近更新 更多