给定 rpm 包名称,查询 yum 数据库以获取更新

发布于 2024-07-12 08:07:35 字数 118 浏览 17 评论 0原文

我正在想象一个 3 行 Python 脚本来完成此操作,但 yum Python API 难以理解。 这可能吗?

为“yum list package-name”编写包装器是执行此操作的唯一方法吗?

I was imagining a 3-line Python script to do this but the yum Python API is impenetrable. Is this even possible?

Is writing a wrapper for 'yum list package-name' the only way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

霞映澄塘 2024-07-19 08:07:35

http://fpaste.org/paste/2453

并且有很多 yum api 的示例和一些指南在这里开始使用:

http://yum.baseurl.org/#DeveloperDocumentationExamples

http://fpaste.org/paste/2453

and there are many examples of the yum api and some guides to getting started with it here:

http://yum.baseurl.org/#DeveloperDocumentationExamples

老子叫无熙 2024-07-19 08:07:35

正如 Seth 指出的,您可以使用更新 API 来询问是否有可用更新。 对于接近“yum list”的内容,您可能需要使用 doPackageLists()。 例如。

import os, sys
import yum

yb = yum.YumBase()
yb.conf.cache = os.geteuid() != 1
pl = yb.doPackageLists(patterns=sys.argv[1:])
if pl.installed:
    print "Installed Packages"
    for pkg in sorted(pl.installed):
        print pkg
if pl.available:
    print "Available Packages"
    for pkg in sorted(pl.available):
        print pkg, pkg.repo
if pl.reinstall_available:
    print "Re-install Available Packages"
    for pkg in sorted(pl.reinstall_available):
        print pkg, pkg.repo

As Seth points out, you can use the updates APIs to ask if something is available as an update. For something that's close to what the "yum list" does you probably want to use the doPackageLists(). Eg.

import os, sys
import yum

yb = yum.YumBase()
yb.conf.cache = os.geteuid() != 1
pl = yb.doPackageLists(patterns=sys.argv[1:])
if pl.installed:
    print "Installed Packages"
    for pkg in sorted(pl.installed):
        print pkg
if pl.available:
    print "Available Packages"
    for pkg in sorted(pl.available):
        print pkg, pkg.repo
if pl.reinstall_available:
    print "Re-install Available Packages"
    for pkg in sorted(pl.reinstall_available):
        print pkg, pkg.repo
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文