RPM打包

yum -y install  rpm-build

生成rpmbuild目录结构
rpmbuild -ba nginx.spec             //报错后会自动在家目录root下创建一个子目录

ls /root/rpmbuild                    //自动生成的目录结构
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

RPMS         RPM包的存放位置
SOURCES     原码包位置,允许有多个原码包
SPECS        定义参数
SRPMS       原码包及spec文件(相当于把SOURCE下和SPECS下的文件打包)

将源码软件复制到SOURCES目录
cp nginx-1.12.2.tar.gz /root/rpmbuild/SOURCES/

创建并修改SPEC配置文件
vim /root/rpmbuild/SPECS/nginx.spec
Name:nginx            // 和真实信息一致
Version:1.12.2          // 源码包版本 与真实信息一致
Release:    10         // 第几次打rpm包
Summary: Nginx is a web server software.    // 描述信息,支持中文   
#Group:               // 可以为空,也可以属于哪个组包
License:GPL            // gpl开源协议,允许复制,修改,再发布
URL:    www.test.com     // 网址
Source0:nginx-1.12.2.tar.gz    // 源码包名 和真实信息一样
#BuildRequires:    // 依赖包
#Requires:        // 依赖包
%description     // 详细描述
nginx [engine x] is an HTTP and reverse proxy server.
%post    // 安装后脚本,整个rpm安装完了执行这个脚本
#useradd nginx                       // 非必需操作:安装后脚本(创建账户)
useradd dc    // 只要用户安装软件,就会创建一个用户dc,验证见下边
%prep
%setup –q                 // 这是个脚本,自动解压源码包,上边Source0写的谁,就解压谁,并cd进入目录
%build                    // 指定安装需要参数
./configure   
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
cp /root/rpmbuild/SPECS/nginx.sh %{buildroot}/usr/local/nginx/   
##注意,cp非必须操作,注意,这里是将一个脚本拷贝到安装目录,必须提前准备该文件
%files                     // 对哪些文件压缩 写在下方
%doc                     // 对哪些文件与目录打包 写在下方
/usr/local/nginx/*        
%changelog

使用配置文件创建RPM包

1)安装依赖软件包
yum -y install  gcc  pcre-devel zlib-devel openssl-devel

2)rpmbuild创建RPM软件包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec    // 执行配置文件内容
cd /root/rpmbuild/RPMS/ x86_64
ls
nginx-1.12.2-1.x86_64.rpm  nginx-debuginfo-1.12.2-1.x86_64.rpm  

// 有两个文件,第一个文件即nginx软件,第二个软件是排错用的
rpm -qpi RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm // 列出软件信息
rpm -qpl RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm // 列出软件信息
-i:显示套件的相关信息;
-l:显示套件的文件列表;
-p:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户
posted @   立勋  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示