Menu Close 打包和分发软件 让开源更具包容性 对红帽文档提供反馈 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. 签名软件包 Expand section "4.1. 签名软件包" Collapse section "4.1. 签名软件包" 4.1.1. 创建 GPG 密钥 4.1.2. 配置 RPM 为软件包签名 4.1.3. 在已经存在的软件包中添加签名 4.1.4. 在已经存在的软件包中添加签名的实际示例 4.1.5. 在已经存在的软件包中替换签名 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. Python 软件包的 SPEC 文件描述 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.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 9 中的新功能 Expand section "5. RHEL 9 中的新功能" Collapse section "5. RHEL 9 中的新功能" 5.1. 动态构建依赖项 5.2. 改进了补丁声明 Expand section "5.2. 改进了补丁声明" Collapse section "5.2. 改进了补丁声明" 5.2.1. 可选的自动补丁和源编号 5.2.2. %patchlist 和 %sourcelist 部分 5.2.3. %autopatch 现在接受补丁范围 5.3. 其他功能 6. 其他资源 Document options Language: 简体中文 한국어 日本語 English Format: Single-page HTML PDF ePub 2.2. 如何提交程序 从人类可读源代码转换为机器代码(计算机遵循执行程序)的方法包括: 程序被原生编译。 程序由原始解释器进行解释。 程序通过字节编译进行解释。 2.2.1. 原生编译代码 原生编译的软件是使用编程语言编写的软件,使用生成的二进制可执行文件编译到机器代码中。这些软件可以独立运行。 以这种方式构建的 RPM 软件包是特定于架构的。 如果您在使用 64 位(x86_64)AMD 或 Intel 处理器的计算机中编译此类软件,则无法在 32 位(x86)AMD 或 Intel 处理器上执行。生成的软件包的名称指定了架构。 Previous Next