rpm 元数据

rpm 元数据

存在一个问题:如何将 RPM 标记为自动安装,但这个问题涉及 Fedora。

zypper我作为最终用户在 OpenSUSE 上使用,并且想知道如何标记包,以便它会(或不会)显示在unneeded包列表中,扩展名为zypper packages --unneeded.我正在寻找类似的东西zypper mark autoselected [packageName]

Novell Bugzilla 错误提到了 的状态byUser,并且可能是autoselected,所以听起来这个信息存在于某处。我想知道如何修改。

答案1

如果您正在寻找与 类似的选项apt-mark,这里的模式略有不同。

要将软件包标记为自动安装,请将其添加到/var/lib/zypp/AutoInstalled.要将其标记为手动安装,请将其从那里删除或重新安装

zypper in -f <package-name>

答案2

我冒昧地猜测存储库映射是由 处理的zypper,就像yum那样,而不是由 处理rpm。此外,您在自己的问题中链接的问题表明该问题yumdb在 Fedora 中用于此目的,这将进一步支持我的假设。 OpenSUSE文档揭示了:

RPM XML 元数据格式主要用于互联网上的在线存储库。它的起源于百胜餐饮集团包管理器。

就在最近,它被扩展为支持跨多种媒体的存储库。

请参阅 OpenSUSE zypper 架构规范的源代码在 github 上。尽管元数据是包的一部分,但它要么由/ (独立)rpm使用,要么工具yumzypperrpm内置该功能,数据库信息不会在yum<-->rpm和/或zypper<-->之间共享rpm

阅读完您的整个问题后,我不确定您是否是希望使用 zypperdb(?) 的最终用户,或者您是否是希望构建rpm软件包的开发人员。对于后者,正如我之前所回避的,可以在 rpmspec文件中指定信息。

rpm 元数据

这是一种 XML 格式,用于描述 rpm 包中用于依赖性解析和安装的关键元数据。目前,apt-rpm、smartpm、red Carpet 和 yum 支持此格式。

这些文件细分如下:

  • repomd.xml这是描述其他元数据文件的文件。它就像一个索引文件,指向其他文件。它包含其他文件的时间戳和校验和。这让客户端可以下载这个小文件,并知道是否有其他内容发生了变化。这也意味着以加密方式(例如:gpg)签署此文件可以确保存储库的完整性。

  • primary.xml.[gz]该文件存储主要元数据信息。这包括以下信息:

    • 名称、纪元、版本、发行版、架构
    • 文件大小、文件位置、描述、摘要、格式、校验和标头字节范围等。
    • 依赖、提供、冲突、过时、建议、推荐
    • 某些文件的包的文件列表 - 特别是匹配的文件:/etc*, *bin/*, /usr/lib/sendmail[1]
  • filelists.xml.[gz]该文件存储包的完整文件和目录列表。包由以下内容标识:名称、纪元、版本、发行版、架构和包校验和 ID。

  • other.xml.[gz]该文件当前仅存储包中的变更日志数据。但是,该文件可用于对客户端有用的任何其他附加元数据。

  • groups.xml.[gz]暂时描述此文件。其目的也是为了通用的包组规范。这种格式仍有一些部分需要充实。

整我该规范需要更好、更新的文档,因此需要包含在此处。 :)


其他资源

相关内容