Jump To Close Expand all Collapse all Table of contents 打包和分发软件 让开源更具包容性 对红帽文档提供反馈 1. RPM 简介 Expand section "1. RPM 简介" Collapse section "1. RPM 简介" 1.1. RPM 软件包 1.2. 列出 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. 解释的软件 2.3. 从源构建软件 Expand section "2.3. 从源构建软件" Collapse section "2.3. 从源构建软件" 2.3.1. 从原生编译的代码构建软件 Expand section "2.3.1. 从原生编译的代码构建软件" Collapse section "2.3.1. 从原生编译的代码构建软件" 2.3.1.1. 手动构建 cello 软件 2.3.1.2. 为 cello 程序设置自动构建 2.3.2. 解释源代码 Expand section "2.3.2. 解释源代码" Collapse section "2.3.2. 解释源代码" 2.3.2.1. 字节编译 pello 程序 2.3.2.2. 原始解释 bello 程序 3. 为 RPM 打包准备软件 Expand section "3. 为 RPM 打包准备软件" Collapse section "3. 为 RPM 打包准备软件" 3.1. 修复软件 Expand section "3.1. 修复软件" Collapse section "3.1. 修复软件" 3.1.1. 为 cello 程序创建一个补丁文件 3.1.2. 给 cello 程序打补丁 3.2. 创建一个 LICENSE 文件 3.3. 将源代码放入 tar 包 Expand section "3.3. 将源代码放入 tar 包" Collapse section "3.3. 将源代码放入 tar 包" 3.3.1. 将 bello 程序放入 tar 包中 3.3.2. 将 pello 程序放入 tar 包中 3.3.3. 将 cello 程序放入 tar 包中 4. 打包软件 Expand section "4. 打包软件" Collapse section "4. 打包软件" 4.1. 设置 RPM 打包工作区 4.2. 什么是 SPEC 文件 Expand section "4.2. 什么是 SPEC 文件" Collapse section "4.2. 什么是 SPEC 文件" 4.2.1. Preamble 项 4.2.2. 正文项 4.2.3. 高级 items 4.3. BuildRoots 4.4. RPM 宏 4.5. 使用 SPEC 文件 Expand section "4.5. 使用 SPEC 文件" Collapse section "4.5. 使用 SPEC 文件" 4.5.1. 使用 rpmdev-newspec 创建新的 SPEC 文件 4.5.2. 修改原始的 SPEC 文件以创建 RPM 4.5.3. 使用 bash 编写的程序的 SPEC 文件示例 4.5.4. 使用 Python 编写的程序的 SPEC 文件示例 4.5.5. 使用 C 语言编写的程序的 SPEC 文件示例 4.6. 构建 RPM Expand section "4.6. 构建 RPM" Collapse section "4.6. 构建 RPM" 4.6.1. 构建源 RPM 4.6.2. 从源 RPM 重新构建一个二进制 RPM 4.6.3. 从 SPEC 文件构建二进制 RPM 4.6.4. 从源 RPM 构建二进制 RPM 4.7. 检查 RPM 健全性 Expand section "4.7. 检查 RPM 健全性" Collapse section "4.7. 检查 RPM 健全性" 4.7.1. 检查 bello for sanity Expand section "4.7.1. 检查 bello for sanity" Collapse section "4.7.1. 检查 bello for sanity" 4.7.1.1. 检查 bello SPEC 文件是否健全 4.7.1.2. 检查 bello 二进制 RPM 是否健全 4.7.2. 检查 pello 是否健全 Expand section "4.7.2. 检查 pello 是否健全" Collapse section "4.7.2. 检查 pello 是否健全" 4.7.2.1. 检查 pello SPEC 文件是否健全 4.7.2.2. 检查 pello 二进制 RPM 是否健全 4.7.3. 检查完整性的单元格 Expand section "4.7.3. 检查完整性的单元格" Collapse section "4.7.3. 检查完整性的单元格" 4.7.3.1. 检查 cello SPEC 文件是否健全 4.7.3.2. 检查 cello 二进制 RPM 是否健全 4.8. 将 RPM 活动记录到 syslog 4.9. 提取 RPM 内容 5. 高级主题 Expand section "5. 高级主题" Collapse section "5. 高级主题" 5.1. 签名 RPM 软件包 Expand section "5.1. 签名 RPM 软件包" Collapse section "5.1. 签名 RPM 软件包" 5.1.1. 创建 GPG 密钥 5.1.2. 配置 RPM 为软件包签名 5.1.3. 向 RPM 软件包添加签名 5.2. 有关宏的更多内容 Expand section "5.2. 有关宏的更多内容" Collapse section "5.2. 有关宏的更多内容" 5.2.1. 定义您自己的宏 5.2.2. 使用 %setup 宏 Expand section "5.2.2. 使用 %setup 宏" Collapse section "5.2.2. 使用 %setup 宏" 5.2.2.1. 使用 %setup -q 宏 5.2.2.2. 使用 %setup -n 宏 5.2.2.3. 使用 %setup -c 宏 5.2.2.4. 使用 %setup -D 和 %setup -T 宏 5.2.2.5. 使用 %setup -a 和 %setup -b 宏 5.2.3. %files 部分中的常见 RPM 宏 5.2.4. 显示内置宏 5.2.5. RPM 发布宏 5.2.6. 创建自定义宏 5.3. Epoch, Scriptlets 和 Triggers Expand section "5.3. Epoch, Scriptlets 和 Triggers" Collapse section "5.3. Epoch, Scriptlets 和 Triggers" 5.3.1. Epoch 指令 5.3.2. scriptlets 指令 5.3.3. 关闭 scriptlet 执行 5.3.4. scriptlets 宏 5.3.5. Triggers 指令 5.3.6. 在 SPEC 文件中使用非 shell 脚本 5.4. RPM 条件 Expand section "5.4. RPM 条件" Collapse section "5.4. RPM 条件" 5.4.1. RPM 条件语法 5.4.2. %if 条件 5.4.3. %if 条件的专用变体 5.5. 打包 Python 3 RPM Expand section "5.5. 打包 Python 3 RPM" Collapse section "5.5. 打包 Python 3 RPM" 5.5.1. SPEC 文件是 Python 软件包的描述 5.5.2. Python 3 RPM 的常见宏 5.5.3. 为 Python RPM 使用自动生成的依赖项 5.6. 在 Python 脚本中处理解释器指令 Expand section "5.6. 在 Python 脚本中处理解释器指令" Collapse section "5.6. 在 Python 脚本中处理解释器指令" 5.6.1. 修改 Python 脚本中的解释器指令 5.7. RubyGems 软件包 Expand section "5.7. RubyGems 软件包" Collapse section "5.7. RubyGems 软件包" 5.7.1. RubyGems 是什么 5.7.2. RubyGems 与 RPM 的关系 5.7.3. 从 RubyGems 软件包创建 RPM 软件包 Expand section "5.7.3. 从 RubyGems 软件包创建 RPM 软件包" Collapse section "5.7.3. 从 RubyGems 软件包创建 RPM 软件包" 5.7.3.1. RubyGems SPEC 文件惯例 5.7.3.2. RubyGems macros 5.7.3.3. RubyGems SPEC 文件示例 5.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件 Expand section "5.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件" Collapse section "5.7.3.4. 使用 gem2rpm 将 RubyGems 软件包转换为 RPM SPEC 文件" 5.7.3.4.1. 安装 gem2rpm 5.7.3.4.2. 显示 gem2rpm 的所有选项 5.7.3.4.3. 使用 gem2rpm 将 RubyGems 软件包覆盖到 RPM SPEC 文件 5.7.3.4.4. gem2rpm 模板 5.7.3.4.5. 列出可用的 gem2rpm 模板 5.7.3.4.6. 编辑 gem2rpm 模板 5.8. 如何使用 Perls 脚本处理 RPM 软件包 Expand section "5.8. 如何使用 Perls 脚本处理 RPM 软件包" Collapse section "5.8. 如何使用 Perls 脚本处理 RPM 软件包" 5.8.1. 与 Perl 相关的常见依赖项 5.8.2. 使用特定的 Perl 模块 5.8.3. 将软件包限制为特定的 Perl 版本 5.8.4. 确保软件包使用正确的 Perl 解释器 6. RHEL 9 中的新功能 Expand section "6. RHEL 9 中的新功能" Collapse section "6. RHEL 9 中的新功能" 6.1. 动态构建依赖项 6.2. 改进了补丁声明 Expand section "6.2. 改进了补丁声明" Collapse section "6.2. 改进了补丁声明" 6.2.1. 可选的自动补丁和源编号 6.2.2. %patchlist 和 %sourcelist 部分 6.2.3. %autopatch 现在接受补丁范围 6.3. 其他功能 7. 其他资源 法律通告 Settings Close Language: 简体中文 日本語 한국어 English Français Language: 简体中文 日本語 한국어 English Français Format: Multi-page Single-page Format: Multi-page Single-page Language and Page Formatting Options Language: 简体中文 日本語 한국어 English Français Language: 简体中文 日本語 한국어 English Français Format: Multi-page Single-page Format: Multi-page Single-page 打包和分发软件 Red Hat Enterprise Linux 9使用 RPM 软件包管理系统打包软件Red Hat Customer Content Services法律通告摘要 使用 RPM 软件包管理器将软件打包到 RPM 软件包中。为打包准备源代码,打包软件并调查高级打包场景,如将 Python 项目或 RubyGems 打包到 RPM 软件包中。 Next