Linux下rpm打包
rpm打包:把源码转换为rpm
为什么使用rpm打包
rpm不能定制(不能选择安装路径,或者一些模块化不能出现选择)
案例:
制作nginx的rpm包
问题:
使用nginx-1.20.1版本的源码软件,生成对应的rpm包软件,具体要求如下
- 软件名称为nginx
- 软件版本为1.20.1
- rpm软件包可以查询描述信息
- rpm软件包可以安装及卸载
方案:
安装rpm-build软件包,编写SPEC配置文件,创建新的rpm软件包,配置文件中的描述信息如下表所示
选项 | 值 |
---|
Name | Nginx | Version | 1.20.1 | Release | 1 | Summary | Nginx is a web server software | License | GPL | URL | www.nginx.org | Source0 | nginx-1.20.1.tar.gz | BuildRequires | gcc pcre-devel zlib-devel openssl-devel | %description | nginx {engine x}is an HTTP and reverse proxy server… |
步骤:
步骤一:安装rpm-build软件
1)安装rpm-build软件
yum -y install rpm-build
2)生成rpmbuild目录结构
rpmbuild -ba nginx.spec
ls /root/rpmbuild
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
sources
rpms
specs
3)准备工作,将源码软件复制到sources目录
cp nginx-1.20.1.tar.gz /root/rpmbuild/SOURCES/
4)创建并修改spec配置文件
vim /root/rpmbuild/SPECS/nginx.spec
Name:nginx
Version:1.20.1
Release: 1%{?dist}
Summary:this is web server
License:GPL
URL:www.nginx.com
Source0:
%description
this is web server
%post
useradd nginx -s /sbin/nolongin
%prep
%setup -q
%build
./configure --user=nginx
make %{?_smp_mflags}
%install
%make_install
%files
%doc
/usr/local/nginx/*
%changelog
接上述的组包
把很多软件放到一个组,安装的时候可以直接安装这个组包,就能安装这个组包的所有软件
查看组包 yum grouplist 安装组包 yum groupinstall 组包名
步骤二:使用配置文件创建rpm包
1)安装依赖软件包
yum -y installgcc pcre-devel openssl-devel
2)rpmbuild创建rpm软件包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
ls /root/rpmbuild/RPMS/x86_64/
nginx-1.20.1-1.el8.x86_64.rpm nginx-debugsource-1.20.1-1.el8.x86_64.rpm
nginx-debuginfo-1.20.1-1.el8.x86_64.rpm
第一个为我们做好的rpm包 ,第三个为我们的源码包
步骤三:测试安装
/usr/local/nginx/sbin/nginx -s stop
rm -rf /usr/local/nginx/*
rpm -ivh /root/rpmbuild/RPMS/x86_64/nginx-1.20.1-1.el8.x86_64.rpm
/usr/local/nginx/sbin/nginx
id nginx
curl http://127.0.0.1/
yum info nginx
可以查看软件的信息,与我们刚才写的一致
|