在我們工作中,總有一些源碼包需要安裝,如果這種需求頻繁的話,我們可以考慮將源碼包製作成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、我的軟件你可以任意發佈和傳播