rpm安装包制作
RPM是RPM Package Manager(RPM软件包管理器)
1. 安装制作工具
# yum install rpm-build
2. 目录结构
/root/rpmbuild/SOURCES — 存放源代码,补丁,图标等文件
/root/rpmbuild/SPECS — 存放用于管理rpm制作进程的spec文件
/root/rpmbuild/BUILD — 解压后的文件存放在这里
/root/rpmbuild/RPMS — 存放由rpmbuild制作好的二进制包
/root/rpmbuild/SRPMS —存放由rpmbuild制作好的源码包
3. 以rp-pppoe为例
下载rp-pppoe-3.10.tar.gz
# tar xvf rp-pppoe-3.10.tar.gz
# cp rp-pppoe-3.10.tar.gz /root/rpmbuild/SOURCES/
# cp rp-pppoe.spec /root/rpmbuild/SOURCES/
4. spec解释
Summary:简单描述软件
Name:定义rpm的名称
Version:定义软件版本
Release:发行版本
License:定义许可证
Group:软件分类
Source:源码下载地址
URL:源码相关网站
Distribution:发行版系列
Packager:打包人的信息
%description:软件详细描述,可多行
%prep:软件编译之前的处理,如解压
%build:开始编译软件,如make
%install:开始安装软件,如make install
%files:指定哪些文件需要被打包,如/usr/local/nginx
%preun:定义卸载之前的动作,如杀掉进程
5. 制作
# rpmbuild -bb rp-pppoe.spec
# rpmbuild -ba rp-pppoe.spec
# ls RPMS/x86_64/rp-pppoe-
rp-pppoe-3.10-1.x86_64.rpm rp-pppoe-gui-3.10-1.x86_64.rpm
rp-pppoe-debuginfo-3.10-1.x86_64.rpm
6. 常见错误
如果出错:
RPM build errors:
Installed (but unpackaged) file(s) found:
解决办法:
将/usr/lib/rpm/macros 中
%__check_files /usr/lib/rpm/check-files %{buildroot} 注释掉
如果出错:
error: Failed build dependencies:
解决办法:
将spec文件中BuildRequires去掉
7. rpmbuild 中文手册
http://www.jinbuguo.com/redhat/rpmbuild.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!