openSUSE:Standards YaST2 Repository Metadata content
原理
什么是产品,什么使产品成为产品?
安装 openSUSE-10.2 可以通过各种方式完成。最终,计算机系统安装了 openSUSE-10.2。
几乎。
根据安装介质,最终安装的软件包集会有所不同。你可能会获得额外的字体、翻译、游戏等等。核心功能相同,但存在细微的差异。
我们希望检测这些差异,用于调试和统计目的。
否则我们如何知道将精力放在哪里?在更多的 CD 上还是在更好的 FTP 仓库上?
Code11
产品元数据
仓库根目录下的 content 文件定义了产品。在内部,产品具有名称、版本、发布版和架构。此外,它还有依赖关系。简而言之,它是一个可以使用与 RPM 软件包相同的语义解析的产品。
示例
CONTENTSTYLE 11 NAME SUSE_SLES VERSION 11 RELEASE 0 DISTRIBUTION SUSE Linux Enterprise Server 11.0 (i686) DESCRDIR suse/setup/descr DATADIR suse LABEL SUSE Linux Enterprise Server 11 VENDOR SuSE Linux Products GmbH BASEARCHS i386 RELNOTESURL http://www.novell.com/linux/releasenotes/i386/SUSE-SLES/11/release-notes-sles.rpm META SHA1 5f4dfc16a5395614af94392382d61e7f4d251c6e Basis-Devel-10-235.2.i586.pat.gz META SHA1 ff619b5e2a559c3443dfd07a3319112fa97f9af2 Dom0-10-235.2.i586.pat.gz ... HASH SHA1 12171caa5bf085ad295c64eb01faaec7b698569f control.xml HASH SHA1 2f4eaf960048b9dccc6f47584c0ce31f43332ef1 media.1/info.txt ... KEY SHA1 17162a96933229a9771ee10c0976bdc047a2f53d gpg-pubkey-0dfb3188-41ed929b.asc KEY SHA1 f6accbb18d705bfc104c893cf7dfca1247a33f3c gpg-pubkey-307e3d54-481f30aa.asc
当前标签文档
CONTENTSTYLE
- 必须是 content 文件的第一个标签
- 对于 Code11,必须具有值 '11',即 CONTENTSTYLE 11
NAME 将被添加
- 仅在内部使用
- 与软件包名称相同的限制适用
- 请参阅 的
VERSION 和 RELEASE
- 这将是版本-发布版
- 与软件包版本相同的限制适用
- 必须可比较(如 RPM 版本-发布版字符串)
- 版本指定可见编号,发布版是内部的,GA 从 0 开始,并在后续重建中增加。
- 示例
VERSION 10.2
RELEASE 0 (GA 版本)
VERSION 10.2
RELEASE 1 (重新制作的版本)
Factory 版本
对于 factory,版本必须与发布的产品的版本不同。在 factory 实际上是即将发布的产品的短时间内,拥有相同的版本是可以接受的 - 通常不是。
因此,一旦 openSUSE-10.2 分离,并且 factory 中出现新的/更新的软件包,其版本必须增加。
Factory 版本必须高于 10.2(因为开发在继续)且低于 10.3(我们还没有到那里)。
并且应该可以检测到对 factory 树的更改。
因此 factory 将是
VERSION 10.2.1
RELEASE 1
每次将 factory 树同步到公共环境时,发布版号都会增加(从 1 开始)。
BASEARCHS
- 用空格分隔的产品架构列表。将为可用产品列表中创建每个架构的产品。
- 匹配可用产品-发布版软件包架构。
DISTRIBUTION
表示发行版的字符串。相同的字符串很可能用于 .rpms 中,以表示发行版。通常是名称、版本和风味的组合。
PATTERNS
- 产品预先选择的模式列表。
- 由 YaST 解析和评估。
DESCRDIR
- 软件包列表和模式的位置。
DATADIR
- 软件包的位置
LABEL
- 用于显示目的的产品名称
- 可以另外指定翻译,如 LABEL.locale,即 LABEL.de 或 LABEL.cz
META SHA1
- 定义 DESCRDIR 中资源的校验和
HASH SHA1
- 定义与媒体根目录无关的文件的校验和
KEY SHA1
- 定义 gpg 密钥的校验和
VENDOR
- 定义产品的供应商
- 必须与 .prod 文件中的 <vendor> 标签相同
- 如果仓库元数据未为软件包提供供应商信息(=Vnd: 在 packages 文件中),则软件包供应商将使用此作为后备
UPDATEURLS
- 更新的默认仓库
EXTRAURLS
- ?
OPTIONALURLS
- ?
RELNOTESURL
- 发布说明的 URL
LINGUAS
- 此产品支持的语言列表。
- 如果需要另一种语言,则需要安装例如语言附加组件(如果为安装选择的语言不在此列表中,YaST 会显示警告)。
LANGUAGE
- LANGUAGE 将被 YaST 解析,并定义默认语言(除非另有设置)
- linuxrc 在从 DVD 启动时设置默认语言。
- 安装附加产品时,使用基本产品的语言。
REPOTAGS
版本 satsolver-0.14.16
libzypp-6.31 |
[BNC Bug377568] |
- 仓库(!) 唯一的标识字符串。
- 可以使用此字符串来识别通过不同的 URI 访问的重复仓库。
- 合并的仓库可以提供多个 REPOTAGS 条目。
REGISTERPRODUCT
对于附加产品。此产品是否需要注册。
已废弃的标签
- PRODUCT 将被忽略(替换为 NAME)
- DISTPRODUCT 将被忽略(替换为 DISTRIBUTION)
- DISTVERSION 将被忽略(替换为 DISTRIBUTION)
- TYPE 将被忽略(请参阅 )
- ARCH.* 将被忽略(替换为 BASEARCHS)
- DEFAULTBASE 将被忽略(替换为 BASEARCHS)
- PROVIDES 将被忽略
- REQUIRES 将被忽略
- OBSOLETES 将被忽略
- “content”文件描述了一个产品,该产品在 satsolver/libzypp 中表示为可解析的内容。
- 这样的产品没有依赖关系,所有依赖关系都以软件包级别表示。
- 产品具有匹配的 -release 软件包,-release 软件包需要产品的强制软件包。
- 没有旧的 REQUIRES 标签的替代方案。安装工具可以查看 PATTERNS 以获取要安装的模式。
- SHORTLABEL 将被忽略
- 当前由引导加载程序使用,但如果不存在则默认为 LABEL
- YOUURL 将被忽略
未文档化/不明确
- 哪些标签是必需的,哪些是可选的?
- 对于 libzypp,NAME、VERSION、BASEARCHS、VENDOR。其他值只是转发到应用程序。但其他组件可能也需要其他标签。
- 几个标签(例如 NAME)包含“与软件包名称相同的限制适用”注释。这些限制是什么?
- 请参阅 的 ,但应用程序可能并不关心...
Code10
产品名称
- PRODUCT
- 是产品的详细名称,准确地指定其特征
- 没有空格(所有现有的空格都将转换为下划线)
- 没有版本(请参阅VERSION)
- 没有架构
- 与 RPM 软件包名称相同的规则适用
- 示例
PRODUCT openSUSE
产品版本
- VERSION
- 指定 版本-发布版
- 必须可比较(如 RPM 版本-发布版字符串)
- 版本指定可见编号,发布版是内部的,GA 从 0 开始,并在后续重建中增加。
- 示例
VERSION 10.2-0 (GA 版本)
VERSION 10.2-1 (重新制作的版本)
Factory 版本
对于 factory,版本必须与发布的产品的版本不同。在 factory 实际上是即将发布的产品的短时间内,拥有相同的版本是可以接受的 - 通常不是。
因此,一旦 openSUSE-10.2 分离,并且 factory 中出现新的/更新的软件包,其版本必须增加。
Factory 版本必须高于 10.2(因为开发在继续)且低于 10.3(我们还没有到那里)。
并且应该可以检测到对 factory 树的更改。
因此 factory 将是VERSION 10.2.1-1每次将 factory 树同步到公共环境时,发布版号都会增加(从 1 开始)。
依赖关系
提供的功能 (Provides)
对于给定的示例 - 通过不同方式安装的 openSUSE-10.2 - 最终的系统是 openSUSE-10.2。必须可以检测到这个事实。并且可以通过依赖关系来实现。
- PROVIDES
- 产品提供的其他标签(除了它自己的名称)
- 示例
PROVIDES product:openSUSE = 10.2
必须有一个明确的product前缀,因为依赖关系默认到软件包名称空间!
废弃 (Obsoletes)
由于新产品是早期产品的替代品,因此应该通过适当的 废弃 依赖关系来表达这一点。
- 示例
OBSOLETES product:SUSE_LINUX product:openSUSE < 10.2
openSUSE-10.2 废弃了 SUSE_LINUX(非版本化的废弃!)和所有早期版本的 openSUSE。
参见
此页面未涵盖整个 content 文件。请参阅 (但也不是完整的...)