- # 這個區域定義的Name、Version這些字段對應的值可以在後面
- # 通過%{name},%{version}這樣的方式來引用,類似於C語言中的宏
- # Name制定了軟件的名稱
- Name: nginx
- # 軟件版本
- Version: 1.5.2
- # 釋出號,也就是第幾次製作rpm
- Release: 1%{?dist}
- # 軟件的介紹,必須設置,最好不要超過50個字符
- Summary: Nginx from WangYing
- # 軟件的分組,可以通過/usr/share/doc/rpm-4.8.0/GROUPS文件中選擇,也可以
- # 在相應的分類下,自己創建一個新的類型,例如這裏的Server
- Group: Application/Server
- # 許可證類型
- License: GPL
- # 軟件的源站
- URL: http://nginx.org
- # 製作rpm包的人員信息
- Packager: WangYing <[email protected]>
- # 源碼包的名稱,在%_topdir/SOURCE下,如果有多個源碼包的話,可以通過
- # Source1、Source2這樣的字段來指定其他的源碼包
- Source0: %{name}-%{version}.tar.gz
- # BuildRoot指定了make install的測試安裝目錄,通過這個目錄我們可以觀察
- # 生成了哪些文件,方便些files區域。如果在files區域中寫的一些文件報
- # 不存在的錯誤,可以查看%_topdir/BUILDROOT目錄來檢查有哪些文件。
- BuildRoot: %_topdir/BUILDROOT
- # 指定安裝的路徑
- Prefix: /usr/local/nginx-1.5.2
- # 製作過程需要的工具或軟件包
- BuildRequires: gcc,make
- # 安裝時依賴的軟件包
- Requires: pcre,pcre-devel,openssl
- # 軟件的描述,這個可以盡情地寫
- %description
- Nginx is a http server
- # %prep指定了在編譯軟件包之前的準備工作,這裏的
- # setup宏的作用是靜默模式解壓並切換到源碼目錄中,
- # 當然你也可以使用tar命令來解壓
- %prep
- %setup -q
- # 編譯階段,和直接編譯源代碼類似,具體的操作或指定的一些參數由configure文件決定。
- %build
- CFLAGS="-pipe -O2 -g -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror" ./configure --prefix=%{prefix}
- # make後面的意思是:如果是多處理器,則並行編譯
- make %{?_smp_mflags}
- # 安裝階段
- %install
- # 先刪除原來的測試安裝的,只有在製作失敗了%{buildroot}目錄纔會有內容,
- # 如果成功的話,目錄下會被清除。
- # %{buildroot}指向的目錄不是BuildRoot(%_topdir/BUILDROOT)指定的目錄,
- # 而是該目錄下名稱與生成的rpm包名稱相同的子目錄。例如我的是
- # /usr/src/redhat/BUILDROOT/nginx-1.5.2-1.el6.x86_64
- rm -rf %{buildroot}
- # 指定安裝目錄,注意不是真實的安裝目錄,是在製作rpm包的時候指定的
- # 安裝目錄,如果不指定的話,默認就會安裝到configure命令中指定的prefix路徑,
- # 所以這裏一定要指定DESTDIR
- make install DESTDIR=%{buildroot}
- # 安裝前執行的腳本,語法和shell腳本的語法相同
- %pre
- # 安裝後執行的腳本
- %post
- # 卸載前執行的腳本,我這裏的做的事情是在卸載前將nginx服務器停掉
- %preun
- MSG=`ps aux | grep nginx | grep -v "grep"`
- if [ -z "$MSG" ];then
- killall nginx 1>/dev/null 2>/dev/null
- fi
- # 卸載完成後執行的腳本
- %postun
- rm -rf %{prefix}
- # 清理階段,在製作完成後刪除安裝的內容
- %clean
- rm -rf %{buildroot}
- #指定要包含的文件
- %files
- #設置默認權限,如果沒有指定,則繼承默認的權限
- %defattr (-,root,root,0755)
- %{prefix}
RPM製作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.