亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

RPM包制作方法

2024-06-28 13:20:47
字體:
來源:轉載
供稿:網友
RPM包制作方法

一、RPM介紹

RPM 前是Red Hat Package Manager 的縮寫,本意是Red Hat 軟件包管理,顧名思義是Red Hat 貢獻出來的軟件包管理;現在應為RPM Package Manager的縮寫。在Fedora、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版采用; RPM包中除了包括程序運行時所需要的文件,也有其它的文件;一個RPM包中的應用程序,有時除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件,這就是軟件包的依賴關系。

RPM可以讓用戶直接以binary方式安裝軟件包,并且可替用戶查詢是否已經安裝了有關的庫文件;在用RPM刪除程序時,它又會聰明地詢問用戶是否要刪除有關的程序。如果使用RPM來升級軟件,RPM會保留原先的配置文件,這樣用戶就不用重新配置新的軟件了。RPM保留一個數據庫,這個數據庫中包含了所有的軟件包的資料,通過這個數據庫,用戶可以進行軟件包的查詢。RPM雖然是為linux而設計的,但是它已經移值到SunOS、Solaris、AIX、Irix等其它UNIX系統上了。RPM遵循GPL版權協議,用戶可以在符合GPL協議的條件下自由使用及傳播RPM。

二、RPM包分類

rpm分為兩大類,

1 二進制類包,包括rpm安裝包(一般分為i386和x86等幾種)和調式信息包等2 源碼類包,源碼包和開發包應該歸位此類

它們之間的關系是,最先我們按rpm打包要求改造軟件項目源碼,當符合要求之后就可以使用rpmbuild命令來生成不同的rpm包,同時生成的包之間版本是直接對應的,比如相同的源碼包將生成完全相同的二進制rpm包。當你在網上查找rpm包時,一般你可以在RPMS目錄中找到預編譯的二進制包,而源碼包則會在SRPMS目錄內。

我們這里提到的RPM制作就是指改造軟件源代碼使之符合RPM打包要求的過程,這也可以等價為RPM源碼包的制作過程,因為當你有了源碼包就可以直接編譯得到二進制安裝包和其他任意包。

三、RPM包制作介紹

RPM包的制作,即是RPM源碼包的制作。

RPM包工作的原理

RPM是為解決源碼包不易安裝(需要編譯)和軟件包相互之間依賴(是RPM包管理器可以一定程度解決依賴問題)問題,它通過在探測源碼包在build和install階段的動作獲得最終生成的需要安裝的系統里的文件,并記錄下一些必要的操作(比如安裝完成后執行某項操作),然后把此組成為一個整體,當在用戶安裝此包時把前面獲得的所有問題和記錄的所有操作原原本本的作用的實際系統上。

把一個普通的源碼打成RPM包,需要下面一些操作

1、先需要對項目的Makefile作必要的改造以支持RPM打包操作(實際上此操作不是絕對的,SPEC文檔和Makefile的是協調統一工作的,只要他們之間配合好了其他都無所謂,我們一般只是推薦大家盡量按行業標準規范操作而已)2、次是針對當前項目撰寫SPEC文檔,SPEC文檔包括了RPM打包過程的操作內容和新生成的RPM包的基本信息等,它的作用對象是打包程序rpmbuild。

四、RPM包制作過程

參考:https://www.centos.bz/2012/06/make-rpm-package-methods/

1 準備打包環境

執行如下命令安裝rpmbuild和rpmdevtools

#yum install rpmbuild
#yum install rpmdevtools 

執行如下命令來生成rpmbuild的工作目錄

#rpmdev-setuptree

工作目錄結構如下,

~/rpmbuild~/rpmbuild/SOURCES              #放置打包資源,包括源碼打包文件和補丁文件等~/rpmbuild/SPECS                #放置SPEC文檔~/rpmbuild/BUILD                #打包過程中的工作目錄~/rpmbuild/RPMS                 #存放生成的二進制包~/rpmbuild/RPMS/i386            #存放生成的i386結構包~/rpmbuild/SRPMS                #存放生成的源碼包
提示:rpmdev-setuptree命令默認將再當前用戶主目錄下創建一個RPM構建根目錄結構,如果需要改變次默認位置,可以修改配置文件:~/.rpmmacros中變量_topdir對應的值即可。

image

2、載源碼包到SOURCES目錄,不需要解壓

cd SOURCES/wget http://nginx.org/download/nginx-1.2.1.tar.gz

image

3、撰寫Spec文件

SPEC撰寫是打包RPM的核心,也算是最難的一步,好在我們可以從參照一個簡單的模板文件開始,在可以實現基本功能的基礎上再一步一步的擴充文檔內容,直至完全達到要求。下面是一個簡單的SPEC文檔,其中包括了一些說明信息(注:#后面的內容為說明信息),該SPEC文檔是對一個測試的軟件項目hellorpm寫的,hellorpm軟件包編譯后僅有一個執行文件、一個手冊文件和一個項目說文件。

nginx.spec文檔的內容如下:

## Example spec file for nginx##軟件包簡要介紹Summary: high performance web server#軟件包的名字Name: nginx#軟件包的主版本號Version: 1.2.1#軟件包的次版本號Release: 1.el5.ngx#授權協議License: 2-clause BSD-like license#軟件分類Group: applications/ServerSource: http://nginx.org/download/nginx-1.2.1.tar.gzURL: http://nginx.org/Distribution: LinuxPackager: zhumaohai <admin@www.centos.bz> #軟件包的內容介紹%descriptionnginx [engine x] is a HTTP and reverse PRoxy server, as well asa mail proxy server#表示預操作字段,后面的命令將在源碼代碼BUILD前執行%preprm -rf $RPM_BUILD_DIR/nginx-1.2.1zcat $RPM_SOURCE_DIR/nginx-1.2.1.tar.gz | tar -xvf -#BUILD字段,將通過直接調用源碼目錄中自動構建工具完成源碼編譯操作  %buildcd nginx-1.2.1#調用源碼目錄中的configure命令 ./configure --prefix=/usr/local/nginx#在源碼目錄中執行自動構建命令makemake#安裝字段%installcd nginx-1.2.1#調用源碼中安裝執行腳本  make install%preunif [ -z "`ps aux | grep nginx | grep -v grep`" ];thenkillall nginx >/dev/nullexit 0fi#文件說明字段,聲明多余或者缺少都將可能出錯%files#聲明/usr/local/nginx將出現在軟件包中
/usr/local/nginx

4、構建RPM包

開始構建操作,首先進入到當前用戶的rpmbuild根目錄

#cd ~/rpmbuild/#rpmbuild -ba SPECS/nginx.spec

提示:-ba表示build all,即生成包括二進制包和源代碼包的所有RPM包,如果正常的話,rpmbuild將正常退出,同時在RPMS目錄和SRPMS目錄中將生成對應的RPM包。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久久久久男| 国产精品国内视频| 欧美肥老太性生活视频| 国产精品视频地址| 欧美激情视频在线免费观看 欧美视频免费一| 97人人模人人爽人人喊中文字| 色综合老司机第九色激情| 日韩欧美极品在线观看| 久久97精品久久久久久久不卡| 久久精品成人一区二区三区| 51视频国产精品一区二区| 成人免费看片视频| 成人福利视频在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 国产一区欧美二区三区| 国产一区视频在线| 欧美一级bbbbb性bbbb喷潮片| 国产一区二区三区在线播放免费观看| 亚洲综合中文字幕在线| 亚洲免费小视频| 国产精品三级在线| 免费av一区二区| 国产精品福利在线| 亚洲国产欧美在线成人app| 久久69精品久久久久久国产越南| 久久精品国产2020观看福利| 国产啪精品视频| 久久在线免费观看视频| 日韩综合视频在线观看| 国产成人精品综合久久久| 亚洲视频自拍偷拍| 欧美激情综合色综合啪啪五月| 国产精品久久久久秋霞鲁丝| 性色av香蕉一区二区| 在线播放国产一区二区三区| 久久全国免费视频| 国产男女猛烈无遮挡91| 裸体女人亚洲精品一区| 成人精品视频99在线观看免费| 欧美成年人视频网站欧美| 国产精品美女在线观看| 日韩欧美在线视频| 国产精品极品美女在线观看免费| 亚洲18私人小影院| 久久久在线观看| 中日韩午夜理伦电影免费| 亚洲最新av在线| 欧美精品电影在线| 九九久久精品一区| 国产精品视频午夜| 精品国产一区二区三区久久| 亚洲国产精品va在看黑人| 亚洲欧美成人一区二区在线电影| 7m第一福利500精品视频| 中文字幕亚洲国产| 欧美激情精品久久久久久| 亚洲美女av在线播放| 久久中文字幕在线视频| 视频一区视频二区国产精品| 久久久久久久久中文字幕| 国产精品久久久久久久久久东京| 亚洲第一精品夜夜躁人人躁| 欧美韩日一区二区| 亚洲欧美国产精品久久久久久久| 91精品久久久久久久久久入口| 97视频在线观看免费| 亚洲日韩第一页| 午夜欧美不卡精品aaaaa| 久久久av亚洲男天堂| 日本伊人精品一区二区三区介绍| 欧美大胆a视频| 久久精品久久久久| 日韩国产欧美区| 亚洲第一区在线观看| 国产91在线高潮白浆在线观看| 久久精品视频网站| 日本精品免费观看| 亚洲最新中文字幕| 亚洲xxx自由成熟| 国产精品久久久91| 美女扒开尿口让男人操亚洲视频网站| 国产精品视频白浆免费视频| 欧美日韩在线视频一区二区| 国产成人精品视频在线| 日韩精品视频免费在线观看| 欧美自拍视频在线| 亚洲女人天堂成人av在线| 97精品一区二区三区| 欧美黄色小视频| 97av在线影院| 国内伊人久久久久久网站视频| 久久久久久久亚洲精品| 欧美性猛交xxxx黑人猛交| 亚洲精品一区二区在线| 成人午夜一级二级三级| 精品香蕉一区二区三区| 亚洲人成77777在线观看网| 成人性生交xxxxx网站| 欧美激情亚洲另类| 欧美精品免费看| 欧美性猛交视频| 久久久精品2019中文字幕神马| 国产香蕉97碰碰久久人人| 欧美在线一级va免费观看| 日韩视频免费在线| 青青草精品毛片| 久久精品精品电影网| 亚洲免费影视第一页| 亚洲黄色www| 在线观看日韩欧美| 综合136福利视频在线| 蜜臀久久99精品久久久久久宅男| 成人在线免费观看视视频| 久久99久久亚洲国产| 欧美视频在线观看免费网址| 日产日韩在线亚洲欧美| 午夜精品一区二区三区在线播放| 欧美视频在线免费| 国产成人av在线播放| 最好看的2019的中文字幕视频| 久久中文字幕在线视频| 国产一区二区三区精品久久久| 国产在线不卡精品| 国产精品欧美日韩一区二区| 国产一区二区三区网站| 国产成人久久久| 欧美电影院免费观看| 欧美大学生性色视频| 亚洲欧美日韩视频一区| 久久琪琪电影院| 欧美大胆a视频| 国产经典一区二区| 午夜精品久久久久久久久久久久久| 色偷偷噜噜噜亚洲男人的天堂| 国产精品444| 亚洲自拍偷拍一区| 26uuu久久噜噜噜噜| 美女精品久久久| 韩剧1988免费观看全集| 国产视频精品va久久久久久| 亚洲欧美国产精品久久久久久久| 久久99国产精品久久久久久久久| 亚洲无线码在线一区观看| 欧美激情亚洲自拍| 日韩av网站电影| 亚洲最大中文字幕| 亚洲第一精品夜夜躁人人爽| 欧美国产日本在线| 久久精品久久久久久国产 免费| 日韩经典一区二区三区| 久久久亚洲精选| 国产精彩精品视频| 高清欧美性猛交xxxx黑人猛交| 91av在线视频观看| 欧美黑人极品猛少妇色xxxxx| 亚洲成人激情在线观看| 色av吧综合网| 性色av一区二区三区红粉影视| 国产日韩欧美在线视频观看| 日韩网站免费观看高清| 欧美日韩aaaa| 日韩av毛片网| 裸体女人亚洲精品一区| 日韩av电影手机在线观看|