在我们工作中,总有一些源码包需要安装,如果这种需求频繁的话,我们可以考虑将源码包制作成RPM包。
一个rpm包里面都有什么?
1、RPM包的描述信息 # rpm -qpi jdk-8u77-linux-x64.rpm
2、RPM是一个压缩包,里面有很多文件 # rpm -qpl jdk-8u77-linux-x64.rpm
我们执行 # rpm -ivh 具体有有哪些动作?
1、解压rpm包 # rpm2cpio jdk-8u77-linux-x64.rpm |cpio -id
2、拷贝数据到对应位置
了解这些后,我们来看看RPM包制作的过程:
RPM包制作:
1、安装rpm打包工具,生成相应的目录
2、把源码包复制到SOURCES目录中
3、在SPECS目录中编写nginx.spec文件
4、执行nginx.spec文件生成RPM包,生成位置:/root/rpmbuild/RPMS/x86_64/
1、安装rpm打包工具,生成rpmbuild目录
# yum -y install rpm-build //安装rpm打包工具
# rpmbuild -ba xx.spec //创建rpmbuild目录,会在/root下创建rpmbuild目录
也可以手动创建,包括里面的子目录
# ll /root/rpmbuild
BUILD
BUILDROOT //模拟根目录
RPMS //做好的rpm包存放目录
SOURCES //要做rpm包的源码包存放目录
SPECS //spec文件存放目录
SRPMS
2、将源码包复制到SOURCES目录中
# cp /opt/lnmp_soft/nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/
3、在SPECS目录中编写nginx.spec文件
# cd /root/rpmbuild/SPECS/
# vim nginx.spec
Name:nginx //源码包名;来源:源码包包名
Version:1.8.0 //源码包版本;来源:源码包包名
Release:1.0 //RPM包的版本
Summary:this is web server //RPM包概述
#Group: //指定组包
License:GPL //协议
URL:www.test.com //地址栏
Source0:nginx-1.8.0.tar.gz //指定源码包包名
#BuildRequires: //依赖包
#Requires: //依赖包
%description //RPM包的详细描述
this is a web server aaaaaaaaaaaaa
%prep
%setup -q //作用:自动解压源码包,并进入解压目录
%build
./configure --prefix=/usr/local/nginx //可以手动指定安装路径
make %{?_smp_mflags} //自动make
%install
make install DESTDIR=%{buildroot} //自动make install
安装到buildroot中去了:/root/rpmbuild/BUILDROOT/usr/local/nginx
%files //打包哪些文件?
%doc //打包哪些目录?
/usr/local/nginx/* // /root/rpmbuild/BUILDROOT/usr/local/nginx/*
%changelog
4、生成RPM包
# rpmbuild -ba nginx.spec //开始生成RPM包
# ls /root/rpmbuild/RPMS/x86_64/ //做好的RPM包放在这里面
接下来就找个新的环境去安装试试吧。
GPL协议:(GPL协议有继承性)
1、我的软件你可以任意复制和粘贴
1、我的软件你可以任意修改
2、我的软件你可以任意发布和传播