CentOS 发包教程
在 CentOS 系统下进行软件包的创建和管理是 Linux 系统管理的重要组成部分,本文将详细介绍如何在 CentOS 下进行发包,包括源码准备、配置编译环境、编写 spec 文件、生成 rpm 包以及发布和安装等步骤。

一、准备工作
1. 安装必备工具
需要确保系统中安装了创建和管理 RPM 包所需的工具,可以使用以下命令来安装这些工具:
- sudo yum groupinstall "Development Tools"
- sudo yum install rpmbuild rpmdevtools
2. 设置构建环境
使用rpmdevsetup
脚本来设置构建环境,该脚本会自动创建必要的目录结构并生成一些配置文件。
- rpmdevsetup
二、源码准备
假设我们要为一个简单的示例项目创建 RPM 包,项目的目录结构如下:
- myproject/
- ├── README.md
- ├── src/
- │ └── main.c
- └── myproject.spec
main.c
是项目的源代码文件,myproject.spec
是 RPM 规范文件。

三、编写 SPEC 文件
SPEC 文件是 RPM 包的核心,它描述了如何构建软件包,下面是一个基本的 SPEC 文件示例:
- Name: myproject # 包名
- Version: 1.0 # 版本号
- Release: 1%{?dist} # 发行版信息
- Summary: An example project # 简要描述
- License: GPL # 许可证类型
- URL: http://example.com/myproject # 项目主页
- Source0: %{name}%{version}.tar.gz # 源码压缩包
- BuildRequires: gcc # 构建所需的依赖项
- Requires: libc, glibc # 运行时依赖项
- %description
- This is an example project to demonstrate creating RPM packages.
- %prep
- %setup q
- %build
- make
- %install
- rm rf %{buildroot}
- make install DESTDIR=%{buildroot}
- %files
- %defattr(,root,root,)
- %doc README.md
- %license COPYING
- %changelog
四、构建 RPM 包
在准备好源码和 SPEC 文件后,就可以使用rpmbuild
命令来构建 RPM 包了,进入项目根目录,执行以下命令:
- rpmbuild ba myproject.spec
此命令会生成两个 RPM 文件:一个是二进制 RPM (.rpm
),另一个是源代码 RPM (.src.rpm
)。
五、发布和安装 RPM 包
1. 发布 RPM 包
可以将生成的 RPM 包上传到 YUM 仓库或者直接分发给其他用户,如果是企业内部使用,可以搭建私有 YUM 仓库。
2. 安装 RPM 包

使用rpm
命令来安装 RPM 包:
- sudo rpm ivh myproject1.01.el7.x86_64.rpm
六、常见问题及解答(FAQs)
Q1:如何修改已经安装的 RPM 包?
A1:要修改已经安装的 RPM 包,可以先使用rpm
命令卸载该包,然后对源码或 SPEC 文件进行修改,重新打包并安装新版本的 RPM 包。
- sudo rpm e myproject
- 修改源码或SPEC文件,重新打包安装
- rpmbuild ba myproject.spec
- sudo rpm ivh myproject2.01.el7.x86_64.rpm
Q2:如何查询已安装的 RPM 包的信息?
A2:可以使用rpm qi
命令来查询已安装的 RPM 包的信息。
- rpm qi myproject