3.16. Red Hat Enterprise Linux 6 和 7 之间的区别


Red Hat Enterprise Linux 7 中的 RPM Package Manager 提供了很多功能更改,这些更改在 Red Hat Enterprise Linux 6 附带的 RPM Package Manager 旧版本中不提供。
本节详细介绍了为两个系统构建 Software Collection 软件包时可能会影响您的更改。

3.16.1. %license Macro

%license 宏允许您指定软件包要安装的许可证文件。宏只在 Red Hat Enterprise Linux 7 中的 RPM Package Manager 支持。在 Red Hat Enterprise Linux 6 和 7 上构建 Software Collection 软件包时,声明 Red Hat Enterprise Linux 6 的 %license 宏,如下所示:
%{!?_licensedir:%global license %%doc}
Copy to Clipboard Toggle word wrap

3.16.2. 缺少运行时子软件包依赖项

在 Red Hat Enterprise Linux 7 中,scl 工具会在 Software Collection runtime 子软件包中自动生成所需的 Requires。这在 Red Hat Enterprise Linux 6 中无法正常工作。为该系统构建 Software Collection 时,您需要在每个 Software Collection 软件包中的 runtime 子软件包上明确指定依赖项:
Requires: %{?scl_prefix}runtime
Copy to Clipboard Toggle word wrap

3.16.3. scl-package ()provides

按照设计,构建 Software Collection 软件包会生成多个 Provide: scl-package() 标签。它们的目的是在内部识别属于特定 Software Collection 的构建软件包。下表中详述了标签。
Expand
表 3.2. 在 Red Hat Enterprise Linux 7 中提供
Software Collection 软件包
provides
${software_collection_1}
scl-package(software_collection_1)
${software_collection_1}-build
scl-package(software_collection_1)
${software_collection_1}-runtime
scl-package(software_collection_1)
Red Hat Enterprise Linux 6 附带 RPM Package Manager 的旧版本,因此例外,在 Red Hat Enterprise Linux 6 中构建相同的软件包只生成一个 Provide: scl-package() 标签,如下表所述。这是一个预期的行为,差异由 scl 工具在内部处理。
Expand
表 3.3. 在 Red Hat Enterprise Linux 6 中提供
Software Collection 软件包
provides
${software_collection_1}
scl-package(software_collection_1)
不要使用这些内部生成的依赖项来列出属于特定 Software Collection 的软件包。有关如何正确列出 Software Collection 软件包的详情,请参考 第 1.5 节 “列出已安装的 Software Collections”
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat