RPM打包

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

 

 

你可能感兴趣的:(Linux)