![rpm 元数据](https://linux22.com/image/118942/rpm%20%E5%85%83%E6%95%B0%E6%8D%AE.png)
存在一个问题:如何将 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
使用,要么工具yum
zypper
rpm
做内置该功能,数据库信息不会在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]
暂时描述此文件。其目的也是为了通用的包组规范。这种格式仍有一些部分需要充实。整我该规范需要更好、更新的文档,因此需要包含在此处。 :)