1、查看操作系統(tǒng)版本和內(nèi)核版本#uname –a
#more /etc/redhat-release
2、創(chuàng)建相關(guān)目錄/usr/src/redhat/SOURCES //存放源代碼,補(bǔ)丁,圖標(biāo)等文件。
/usr/src/redhat/SPECS //存放用于管理rpm制作進(jìn)程的spec文件。
/usr/src/redhat/BUILD //解壓后的文件存放在這里。
/usr/src/redhat/RPMS //存放由rpmbuild制作好的二進(jìn)制包。
/usr/src/redhat/SRPMS //存放由rpmbuild制作好的源碼包。
#mkdir -p /usr/src/redhat/
#cd /usr/src/redhat/
#mkdir SOURCES SPECS BUILD RPMS SRPMS
3、下載Nginx源碼包下載源碼包到SOURCES目錄,不需要解壓
#wget http://nginx.org/download/nginx-1.3.9.tar.gz
4、手工創(chuàng)建SPEC文件由于spec文件是由spec語(yǔ)言編寫(xiě)的,請(qǐng)注意spec語(yǔ)言的語(yǔ)法。
#cd /usr/src/redhat/SPECS/
#cat < nginx.spec > EOC
Summary: High Performance Web Server Name: nginx Version: 1.3.9 Release: el5 License: GPL Group: Applications/Server Source: http://nginx.org/download/nginx-1.3.9.tar.gz URL: http://nginx.org/ Distribution: Linux Packager: JingSheng <jingsheng1@staff.sina.com.cn> %description nginx [engine x] is a HTTP and reverse proxy server %prep useradd nginx -s /sbin/nologin rm -rf $RPM_BUILD_DIR/nginx-1.3.9 zcat $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf - %build cd $RPM_BUILD_DIR/nginx-1.3.9 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module make %install cd $RPM_BUILD_DIR/nginx-1.3.9 make install %preun if [ -z "`ps aux | grep nginx | grep -v grep`" ];then killall nginx >/dev/null exit 0 fi %files /usr/local/nginx |
#:以#開(kāi)頭是注釋?zhuān)瑀pm會(huì)忽略它。
Summary:簡(jiǎn)單描述軟件。
Name :定義rpm的名稱(chēng)。
Version: 定義軟件版本
Release: 發(fā)行版本
License: 定義許可證
Group: 軟件分類(lèi)
Source: 源碼下載地址
URL: 源碼相關(guān)網(wǎng)站
Distribution: 發(fā)行版系列
Packager: 打包人的信息
scription:軟件詳細(xì)描述,可多行
%prep :軟件編譯之前的處理,如解壓。
%build :開(kāi)始編譯軟件,如make
%install :開(kāi)始安裝軟件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定義卸載之前的動(dòng)作,如殺掉進(jìn)程。
5、開(kāi)始RPM制作在制作RPM包之前,需要安裝必要的編譯工具
#yum install -y gcc rpm-build pcre-devel
開(kāi)始編譯生成rpm包
# rpmbuild-bb nginx.spec
注意:如果安裝生成報(bào)錯(cuò),請(qǐng)將安裝過(guò)的東東全部去除,再重新打包
# rpm –qpl *.rpm 查看rpm包含哪些