Jump To Close Expand all Collapse all 打包和分发软件 使开源包含更多 对红帽文档提供反馈 1. RPM 打包入门 2. 为 RPM 打包准备软件 Expand section "2. 为 RPM 打包准备软件" Collapse section "2. 为 RPM 打包准备软件" 2.1. 什么是源代码 2.2. 如何提交程序 Expand section "2.2. 如何提交程序" Collapse section "2.2. 如何提交程序" 2.2.1. 原生编译代码 2.2.2. 解释代码 Expand section "2.2.2. 解释代码" Collapse section "2.2.2. 解释代码" 2.2.2.1. Raw-interpreted 程序 2.2.2.2. comp-compiled 程序 2.3. 从源构建软件 2.4. 从原生编译的代码构建软件 Expand section "2.4. 从原生编译的代码构建软件" Collapse section "2.4. 从原生编译的代码构建软件" 2.4.1. 手动构建 2.4.2. 自动化构建 2.5. 解释代码 Expand section "2.5. 解释代码" Collapse section "2.5. 解释代码" 2.5.1. 字节编译代码 2.5.2. 原始解析代码 2.6. 修复软件 2.7. 任意工件 2.8. 使用 install 命令在系统中放置任意工件 2.9. 使用 make install 命令在系统中放置任意工件 2.10. 为打包准备源代码 2.11. 将源代码放入 tarball 3. 打包软件 Expand section "3. 打包软件" Collapse section "3. 打包软件" 3.1. RPM 软件包 3.2. 列出 RPM 打包工具的工具 3.3. 设置 RPM 打包工作区 3.4. 什么是 SPEC 文件 Expand section "3.4. 什么是 SPEC 文件" Collapse section "3.4. 什么是 SPEC 文件" 3.4.1. Preamble 项 3.4.2. 正文项 3.4.3. 高级 items 3.5. BuildRoots 3.6. RPM 宏 3.7. 使用 SPEC 文件 3.8. 使用 rpmdev-newspec 创建新的 SPEC 文件 3.9. 修改原始的 SPEC 文件以创建 RPM 3.10. 使用 bash 编写的程序的 SPEC 文件示例 3.11. 使用 Python 编写的程序的 SPEC 文件示例 3.12. 使用 C 语言编写的程序的 SPEC 文件示例 3.13. 构建 RPM 3.14. 构建源 RPM 3.15. 从源 RPM 重建二进制 RPM 3.16. 从 SPEC 文件构建二进制 RPM 3.17. 从源 RPM 构建二进制 RPM 3.18. 检查 RPM 健全性 3.19. 检查 bello for sanity Expand section "3.19. 检查 bello for sanity" Collapse section "3.19. 检查 bello for sanity" 3.19.1. 检查 bello SPEC 文件 3.19.2. 检查 bello 二进制 RPM 3.20. 检查 pello for sanity Expand section "3.20. 检查 pello for sanity" Collapse section "3.20. 检查 pello for sanity" 3.20.1. 检查 pello SPEC 文件 3.20.2. 检查 pello 二进制 RPM 3.21. 检查完整性的单元格 Expand section "3.21. 检查完整性的单元格" Collapse section "3.21. 检查完整性的单元格" 3.21.1. 检查 cello SPEC 文件 3.21.2. 检查 cello 二进制 RPM 3.22. 将 RPM 活动记录到 syslog 3.23. 提取 RPM 内容 4. 高级主题 Expand section "4. 高级主题" Collapse section "4. 高级主题" 4.1. 签名 RPM 软件包 Expand section "4.1. 签名 RPM 软件包" Collapse section "4.1. 签名 RPM 软件包" 4.1.1. 创建 GPG 密钥 4.1.2. 配置 RPM 为软件包签名 4.1.3. 在 RPM 软件包中添加签名 4.2. 有关宏的更多内容 Expand section "4.2. 有关宏的更多内容" Collapse section "4.2. 有关宏的更多内容" 4.2.1. 定义您自己的宏 4.2.2. 使用 %setup 宏 Expand section "4.2.2. 使用 %setup 宏" Collapse section "4.2.2. 使用 %setup 宏" 4.2.2.1. 使用 %setup -q 宏 4.2.2.2. 使用 %setup -n 宏 4.2.2.3. 使用 %setup -c 宏 4.2.2.4. 使用 %setup -D 和 %setup -T 宏 4.2.2.5. 使用 %setup -a 和 %setup -b 宏 4.2.3. %files 部分中的常见 RPM 宏 4.2.4. 显示内置宏 4.2.5. RPM 发布宏 4.2.6. 创建自定义宏 4.3. Epoch, Scriptlets 和 Triggers Expand section "4.3. Epoch, Scriptlets 和 Triggers" Collapse section "4.3. Epoch, Scriptlets 和 Triggers" 4.3.1. Epoch 指令 4.3.2. scriptlets 指令 4.3.3. 关闭 scriptlet 执行 4.3.4. scriptlets 宏 4.3.5. Triggers 指令 4.3.6. 在 SPEC 文件中使用非 shell 脚本 4.4. RPM 条件 Expand section "4.4. RPM 条件" Collapse section "4.4. RPM 条件" 4.4.1. RPM 条件语法 4.4.2. %if 条件 4.4.3. %if 条件的专用变体 4.5. 打包 Python 3 RPM Expand section "4.5. 打包 Python 3 RPM" Collapse section "4.5. 打包 Python 3 RPM" 4.5.1. SPEC 文件是 Python 软件包的描述 4.5.2. Python 3 RPM 的常见宏 4.5.3. 自动为 Python RPM 提供 4.6. 在 Python 脚本中处理解释器指令 Expand section "4.6. 在 Python 脚本中处理解释器指令" Collapse section "4.6. 在 Python 脚本中处理解释器指令" 4.6.1. 修改 Python 脚本中的解释器指令 4.6.2. 在自定义软件包中更改 /usr/bin/python3 解释器指令 4.7. RubyGems 软件包 Expand section "4.7. RubyGems 软件包" Collapse section "4.7. RubyGems 软件包" 4.7.1. RubyGems 是什么 4.7.2. RubyGems 与 RPM 的关系 4.7.3. 从 RubyGems 软件包创建 RPM 软件包 Expand section "4.7.3. 从 RubyGems 软件包创建 RPM 软件包" Collapse section "4.7.3. 从 RubyGems 软件包创建 RPM 软件包" 4.7.3.1. RubyGems SPEC 文件惯例 4.7.3.2. RubyGems macros 4.7.3.3. RubyGems SPEC 文件示例 4.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件 Expand section "4.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件" Collapse section "4.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件" 4.7.3.4.1. 安装 gem2rpm 4.7.3.4.2. 显示 gem2rpm 的所有选项 4.7.3.4.3. 使用 gem2rpm 将 RubyGems 软件包覆盖到 RPM SPEC 文件 4.7.3.4.4. gem2rpm 模板 4.7.3.4.5. 列出可用的 gem2rpm 模板 4.7.3.4.6. 编辑 gem2rpm 模板 4.8. 如何使用 Perls 脚本处理 RPM 软件包 Expand section "4.8. 如何使用 Perls 脚本处理 RPM 软件包" Collapse section "4.8. 如何使用 Perls 脚本处理 RPM 软件包" 4.8.1. 与 Perl 相关的常见依赖项 4.8.2. 使用特定的 Perl 模块 4.8.3. 将软件包限制为特定的 Perl 版本 4.8.4. 确保软件包使用正确的 Perl 解释器 5. RHEL 8 的新功能 Expand section "5. RHEL 8 的新功能" Collapse section "5. RHEL 8 的新功能" 5.1. 支持弱依赖项 Expand section "5.1. 支持弱依赖项" Collapse section "5.1. 支持弱依赖项" 5.1.1. Weak 依赖项简介 5.1.2. Hints 强度 5.1.3. forward 和 Backward 依赖项 5.2. 支持布尔值依赖项 Expand section "5.2. 支持布尔值依赖项" Collapse section "5.2. 支持布尔值依赖项" 5.2.1. 布尔值依赖关系语法 5.2.2. 布尔值运算符 5.2.3. 嵌套 5.2.4. 语义 5.2.5. 了解 if operator 的输出 5.3. 支持文件触发器 Expand section "5.3. 支持文件触发器" Collapse section "5.3. 支持文件触发器" 5.3.1. 文件触发器语法 5.3.2. 文件触发器语法示例 5.3.3. 文件触发器类型 Expand section "5.3.3. 文件触发器类型" Collapse section "5.3.3. 文件触发器类型" 5.3.3.1. 每个软件包文件触发器执行一次 5.3.3.2. 每个事务文件触发器执行一次 5.3.4. 在 glibc 中使用文件触发器示例 5.4. 更严格的 SPEC 解析器 5.5. 支持超过 4 GB 的文件 Expand section "5.5. 支持超过 4 GB 的文件" Collapse section "5.5. 支持超过 4 GB 的文件" 5.5.1. 64 位 RPM 标签 5.5.2. 在命令行中使用 64 位标签 5.6. 其他功能 Settings Close Language: 日本語 简体中文 한국어 English Português Español Language: 日本語 简体中文 한국어 English Português Español Format: Multi-page Single-page PDF ePub Format: Multi-page Single-page PDF ePub Language and Page Formatting Options Language: 日本語 简体中文 한국어 English Português Español Language: 日本語 简体中文 한국어 English Português Español Format: Multi-page Single-page PDF ePub Format: Multi-page Single-page PDF ePub Red Hat Training A Red Hat training course is available for RHEL 8 打包和分发软件 Red Hat Enterprise Linux 8在 Red Hat Enterprise Linux 8 中打包和发布软件指南摘要 本文档论述了如何将软件打包到 RPM 中。它还演示了如何准备源代码以打包,并解释所选的高级打包场景,如将 Python 项目打包或 RubyGems 打包到 RPM 中。 Next