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.6.2. 在自定义软件包中更改 /usr/bin/python3 解释器指令 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 8 的新功能 Expand section "6. RHEL 8 的新功能" Collapse section "6. RHEL 8 的新功能" 6.1. 支持弱依赖项 Expand section "6.1. 支持弱依赖项" Collapse section "6.1. 支持弱依赖项" 6.1.1. Weak 依赖项简介 6.1.2. Hints 强度 6.1.3. forward 和 Backward 依赖项 6.2. 支持布尔值依赖项 Expand section "6.2. 支持布尔值依赖项" Collapse section "6.2. 支持布尔值依赖项" 6.2.1. 布尔值依赖关系语法 6.2.2. 布尔值运算符 6.2.3. 嵌套 6.2.4. 语义 6.2.5. 了解 if operator 的输出 6.3. 支持文件触发器 Expand section "6.3. 支持文件触发器" Collapse section "6.3. 支持文件触发器" 6.3.1. 文件触发器语法 6.3.2. 文件触发器语法示例 6.3.3. 文件触发器类型 Expand section "6.3.3. 文件触发器类型" Collapse section "6.3.3. 文件触发器类型" 6.3.3.1. 每个软件包文件触发器执行一次 6.3.3.2. 每个事务文件触发器执行一次 6.3.4. 在 glibc 中使用文件触发器示例 6.4. 更严格的 SPEC 解析器 6.5. 支持超过 4 GB 的文件 Expand section "6.5. 支持超过 4 GB 的文件" Collapse section "6.5. 支持超过 4 GB 的文件" 6.5.1. 64 位 RPM 标签 6.5.2. 在命令行中使用 64 位标签 6.6. 其他功能 法律通告 Settings Close Language: English 한국어 简体中文 日本語 Português Español Language: English 한국어 简体中文 日本語 Português Español Format: Multi-page Single-page Format: Multi-page Single-page Language and Page Formatting Options Language: English 한국어 简体中文 日本語 Português Español Language: English 한국어 简体中文 日本語 Português Español Format: Multi-page Single-page Format: Multi-page Single-page Red Hat Training A Red Hat training course is available for RHEL 8 6.4. 更严格的 SPEC 解析器 SPEC 解析器现在已合并了一些更改。因此,它可以识别之前被忽略的新问题。 Previous Next