文檔信息: 文檔作者:amunlinux 文檔版本:Version 1.1 修改記錄:2017-04-04 系統環境:CentOS 6.8 64 bit 一、通過nginx源碼包製作rpm包 1.製作前環境準備: 安裝依賴包 yum -y install rpm-build pcre-devel openssl-devel gccgcc-c++ make 2.創建普通用戶 創建普通用戶製作,使用普通用戶製作rpm包(因爲root權限太大); useraddlianlian passwdlianlian su– lianlian exit 退出不了,就用su 切換 將nginx包上傳root/home/ mvnginx-1.6.2.tar.gz /home/lianlian su– lianlian llnginx-1.6.2.tar.gz 二、編寫spec規則 有默認模板的,後綴爲.spec 以下是模板的一部分內容,有的根本用不到。所以個別不用寫,照着填就好 1.在模板裏添加規則 vim nginx.spec 默認模板內容: Name 定義該 rpm 包的名字,必須要填寫。 Version 定義該 rpm 包的版本號,建議和源碼包的名稱保持一致。 Release 1%{?dist}不需要管,系統會在版本號之後自動補齊,就是經常看到的rpm 名中的 el6 部分 Summary 定義關於該 rpm包的一些介紹。 Group 定義軟件包所屬類型。 License 軟件授權類型,比如 GPL、Commercial、Shareware。 URL 定義軟件作者的主頁。 Source0: 定義需要用到的源碼包名字 BuildRoot: 不需要管,系統用 mkstemp定義安裝或編譯時使用的虛擬目錄 作 BuildRequires: 定義源碼包配置時需要用到工具。該選項可有可無。 Requires: 定義rpm 安裝的時候的依賴關係。該選項可有可無。 %description 定義描述信息,注意這裏要另起一行寫 %prep 定義 rpm 包安裝前執行的腳本。在對軟件進行打包前,我們還進行其他 操作。比如解壓 tar.gz 文件。%prep 主要與%setup –q 命令配合使用,建議使用默 認值即可。 %setup –q 不需要管 %build 定義源碼包的安裝配置選項 %install 不需要管,系統執行安裝動作 %files 定義安裝完之後生成的目錄,可以參考源碼包安裝完畢之後生成的目錄 %config/usr/local/httpd/conf/* 代表配置文件 %post 定義 rpm 包安裝後執行的腳本。我們在安裝完畢 rpm 包後,執行軟件初 始化的動作,就可以通過%post 來達到目的。比如:apache在安裝後,將 apachectl 拷貝成 httpd 等操作。默認 spec 模版文件不存在此選項。 %preun 定義 rpm 包卸載前執行的腳本,該選項主要用於軟件升級的時候會執行。 默認 spec 模版文件不存在此選項。 %postun 定義 rpm 包卸載後執行的腳本。默認 spec 模版文件不存在此選項。 %changelog 軟件的變更日誌。該選項可有可無。 2.關於保存*.spec報錯的解決 上述規則編寫完成後保存時會自動報一個錯誤,將會產生一個rpmduild的文件夾,但這是正常的。 2.1解決辦法: 移動源碼包和spec規則文件到rpmbuild文件夾下 cpnginx-1.6.2.tar.gz ./rpmbuild/SOURCES/ cp nginx.spec./rpmbuild/SPECS/ 2.2使用rpmbuild命令生成 rpm包 cd rpmbuild/SPECS/ 或在/home/下也可以 rpmbuild -ba nginx.spec -ba 是輸出過程信息 三、在其他主機測試rpm包 1. 需要按照依賴包 yum -y installwireshark-gnome 2. 上傳並安裝nginx RPM包 [root@xurui~]# rpm -ivh nginx-1.6.2-lianlian.e16.x86_64.rpm Preparing... ########################################### [100%] 1:nginx ########################################### [100%] 3. 查看端口開啓狀態 [root@xurui~]# netstat -anpt |grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2130/nginx tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 1276/rpc.statd 4. 查看rpm包信息 [root@xurui~]# rpm -qi nginx Name : nginx Relocations: (notrelocatable) Version : 1.6.2 Vendor: (none) Release : lianlian.e16 Build Date: 2017年04月04日 星期二 01時37分11秒 InstallDate: 2017年03月21日星期二 11時44分28秒 Build Host: xr-c6.8 Group : System nginx/Web Source RPM: nginx-1.6.2-lianlian.e16.src.rpm Size : 610255 License: GPL Signature : (none) URL : http://www.nginx.org Summary : This is nginx server Description: Systemnginx/web by lianlian [root@xurui~]# End
通過nginx源碼包製作rpm包
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.