RPM打包
应用场景:官方未提供RPM包
官方RPM无法自定义
大量源码包,希望提供统一的软件管理机制
什么是RPM包:1.软件描述信息(rpm -qpi 包名)
2.压缩包(rpm -qpl 包名 :查看有哪些内容),类似于tar包
3.rpm -ivh 解包
打包流程:准备源码软件-->安装rpm-build-->编写编译配置文件-->编译RPM包
示例:制作nginx的RPM包
配置文件中的描述信息:
一、安装rpm-build软件
1)安装rpm-build软件包
[root@Web1 ~]# yum -y install rpm-build
2)生成rpmbuild目录结构
[root@Web1 ~]# rpmbuild -ba nginx.spec //【报错】此命令的功能:生成rpmbuild目录
[root@Web1 ~]# ls /root/rpmbuild //确认rpmbuild目录已生成
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
二、准备工作,将源码软件复制到SOURCES目录
[root@Web1 ~]# cp nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/
[root@Web1 ~]# less /usr/share/doc/rpm-4.11.3/GROUPS //了解RPM软件组包信息
三、创建并修改SPEC配置文件
[root@Web1 ~]# vim /root/rpmbuild/SPECS/nginx.spec
1)Name软件名称 2)Version软件版本 3)Release 版本 4)Summary描述5)Group软件组 6)Liscense协议 7)URL网址,可自定义 8)Source0源码文件9)BuildRoot临时编译目录 10)BuildRequires编译时依赖包 11)Requires安装时依赖包 12)%description详细描述 13)%prep安装前准备,解压14)%setup -q系统使用setup自动解压,安静模式
15)%build编译时需要执行的命令,如%configure或者可./configure --prefix=自定义目录 16)%install安装时需要执行的指令17)%clean清理时需要执行的指令18)%files定义打包文件列表 19)%changelog软件修改历史
###描述信息
Name:nginx //不能错
Version:1.8.0 //不能错
Release: 1 //可随意写
Summary:Nginx is a web server software. //软件的描述
#Group
License:GPL //协议,一般为GPL
URL: www.nginx.org //网址
Source0:nginx-1.8.0.tar.gz //源码名称,一个字母都不能错
#BuildRequires: gcc pcre-devel zlib-devel openssl-devel
#Requires: gcc pcre-devel zlib-devel openssl-devel
%description
nginx [engine x] is an HTTP and reverse proxy server ... ...
###配置信息(动作)
%prep
%setup -q //自动tar解包,自动cd进去
%build
./configure --with-http_ssl_module
make %{?_smp_mflags}
%install //安装
make install DESTDIR=%{buildroot} //make install到此目录下的buildroot
mkdir -p %{buildroot}/etc/init.d/
install /root/rpmbuild/SPECS/nginx.sh %{buildroot}/etc/init.d/
##注意,这里是将一个脚本拷贝到安装目录,如果没有则不需要该指令
%files //要将哪些文件
%doc
/etc/init.d/nginx.sh #将前面拷贝的脚本,打包到RPM中
/usr/local/nginx/*
%changelog
四、使用配置文件创建RPM包
1)安装依赖软件包
[root@Web1 ~]# yum –y install gcc pcre-devel zlib-devel openssl-devel
2)rpmbuild创建RPM软件包
[root@Web1 ~]# rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec //创建RPM软件包
[root@Web1 ~]# ls /root/rpmbuild/RPMS/x86_64/nginx-1.8.0-1.x86_64.rpm
[root@Web1 ~]# rpm -qpi /root/rpmbuild/RPMS/x86_64/nginx-1.8.0-1.x86_64.rpm
//查看描述信息,确认已完成打包
[root@Web1 ~]# rpm -qpl /root/rpmbuild/RPMS/x86_64/nginx-1.8.0-1.x86_64.rpm
[root@Web1 ~]# cd /root/rpmbuild/RPMS/x86_64/
[root@Web1 x86_64]# scp nginx-1.8.0-1.x86_64.rpm 192.168.2.200:/root
五、安装、卸载软件
[root@Web2 ~]# rpm -ivh nginx-1.8.0-1.x86_64.rpm //安装
[root@Web1 ~]# rpm -qa |grep nginx
[root@Web1 ~]# /usr/local/nginx/sbin/nginx
[root@Web1 ~]# curl http://127.0.0.1/
[root@Web1 ~]# /usr/local/nginx/sbin/nginx -s stop //卸载
[root@Web1 ~]# rpm -e nginx