1、查看操作系統版本和內核版本#uname –a
#more /etc/redhat-release
2、創建相關目錄/usr/src/redhat/SOURCES //存放源代碼,補丁,圖標等文件。
/usr/src/redhat/SPECS //存放用于管理rpm制作進程的spec文件。
/usr/src/redhat/BUILD //解壓后的文件存放在這里。
/usr/src/redhat/RPMS //存放由rpmbuild制作好的二進制包。
/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、手工創建SPEC文件由于spec文件是由spec語言編寫的,請注意spec語言的語法。
#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 |
#:以#開頭是注釋,rpm會忽略它。
Summary:簡單描述軟件。
Name :定義rpm的名稱。
Version: 定義軟件版本
Release: 發行版本
License: 定義許可證
Group: 軟件分類
Source: 源碼下載地址
URL: 源碼相關網站
Distribution: 發行版系列
Packager: 打包人的信息
scription:軟件詳細描述,可多行
%prep :軟件編譯之前的處理,如解壓。
%build :開始編譯軟件,如make
%install :開始安裝軟件,如make install
%files :指定哪些文件需要被打包,如/usr/local/nginx
%preun :定義卸載之前的動作,如殺掉進程。
5、開始RPM制作在制作RPM包之前,需要安裝必要的編譯工具
#yum install -y gcc rpm-build pcre-devel
開始編譯生成rpm包
# rpmbuild-bb nginx.spec
注意:如果安裝生成報錯,請將安裝過的東東全部去除,再重新打包
# rpm –qpl *.rpm 查看rpm包含哪些