在线亚洲黄色-在线亚洲观看-在线亚洲电影-在线亚洲成人-岛国大片在线观看免费版-岛国大片在线播放高清

Linux系統下軟件包的制作方法和過程2

導讀總結:rpm包如何制作之個人經驗。 。一RPM介紹;RPM前是RedHatPackageManager的縮寫,本意是RedHat軟件包管理,顧名思義是RedHat貢獻出來的軟件包管理;現在應為RPMPackageManager的縮寫。在Fedora、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版采用;RPM包中除了包括程序運行時所需要的文件,也有其它的文件;一個RPM包中的應用程序,有時除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件,這就是軟件包的依賴關系。 。

系統大全為您提供總結:rpm包如何制作之個人經驗?一RPM介紹RPM前是RedHatPackageManager的縮寫,本意是RedHat軟件包管理,顧名思義是RedHat貢獻出來的軟件包管理;現在應為RPMPackageManager的縮寫。在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是為解決源碼包不易安裝(需要編譯)和軟件包相互之間依賴(是RPM包管理器可以一定程度解決依賴問題)問題,它通過在探測源碼包在build和install階段的動作獲得最終生成的需要安裝的系統里的文件,并記錄下一些必要的操作(比如安裝完成后執行某項操作),然后把此組成為一個整體,當在用戶安裝此包時把前面獲得的所有問題和記錄的所有操作原原本本的作用的實際系統上。?為一個普通的源碼打RPM包,需要下面一些操作,首先需要對項目的Makefile作必要的改造以支持RPM打包操作(實際上此操作不是絕對的,SPEC文檔和Makefile的是協調統一工作的,只要他們之間配合好了其他都無所謂,我們一般只是推薦大家盡量按行業標準規范操作而已);其次是針對當前項目撰寫SPEC文檔,SPEC文檔包括了RPM打包過程的操作內容和新生成的RPM包的基本信息等,它的作用對象是打包程序rpmbuild。?四RPM包制作過程1準備打包環境fedora系統下使用如下命令安裝rpmbuild#yuminstallrpmbuildrpmbuild的工作目錄如下,?~/rpmbuild?~/rpmbuild/SOURCES?~/rpmbuild/Specs?~/rpmbuild/BUILD?~/rpmbuild/RPMS?~/rpmbuild/RPMS/i386?~/rpmbuild/SRPMS?如果你的用戶目錄主目錄下沒有類似目錄結構,你可以通過一個工具軟件來自動配置和生成,如下。?#yuminstallrpmdevtools?下了運行自動配置命令自動生成如上目錄,并配置一些必要操作。?#rpmdev-setuptree?rpmdev-setuptree命令默認將再當前用戶主目錄下創建一個RPM構建根目錄結構,?如果需要改變次默認位置,可以修改配置文件:~/.rpmmacros中變量_topdir對應的值即可。?一般rpmbuild會在當前用戶的主目錄下自動建立如上目錄結構,如果在你對應用戶的構建目錄中沒有自動建立如上目錄,你可以通過手動方式建立。上面目錄的使用是這樣分配的,SOURCES放置打包資源,包括源碼打包文件和補丁文件等;Specs目錄放置SPEC文檔;BUILD打包過程中的工作目錄;RPMS目錄存放生成的二進制包,RPM包根據硬件平臺不同分類,i386表示生成i386結構的包將存放在該目錄下;SRPMS目錄存放生成的源碼包。?2撰寫SPEC文檔SPEC撰寫是打包RPM的核心,也算是最難的一步,好在我們可以從參照一個簡單的模板文件開始,在可以實現基本功能的基礎上再一步一步的擴充文檔內容,直至完全達到要求。下面是一個簡單的SPEC文檔,其中包括了一些說明信息(注:#后面的內容為說明信息),該SPEC文檔是對一個測試的軟件項目hellorpm寫的,hellorpm軟件包編譯后僅有一個執行文件、一個手冊文件和一個項目說文件。hellorpm.spec文檔的內容如下:-----------------------------------------------------------------------------#軟件包簡要介紹Summary:hellorpmisatestprogram。?#軟件包的名字?Name:hellorpm?#軟件包的主版本號?Version:2.2.6?#軟件包的次版本號?Release:1?#源代碼包,默認將在上面提到的SOURCES目錄中尋找?Source0:%{name}-%{version}.tar.gz?#授權協議?License:GPL?#定義臨時構建目錄,這個地址將作為臨時安裝目錄在后面引用?buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root?#軟件分類?Group:Development/Tools?#軟件包的內容介紹?%description?Thehellorpmprogramisatest.?#表示預操作字段,后面的命令將在源碼代碼BUILD前執行?%prep?#構建BUILD環境,將解壓源碼壓縮包到BUILD目錄?%setup-q?#BUILD字段,將通過直接調用源碼目錄中自動構建工具完成源碼編譯操作?%build?#調用源碼目錄中的configure命令?./configure?#在源碼目錄中執行自動構建命令make?make?#安裝字段?%install?#調用源碼中安裝執行腳本?makeDESTDIR=$RPM_BUILD_ROOTinstall?#文件說明字段,聲明多余或者缺少都將可能出錯?%files?#設置文件權限屬性?%defattr(-,root,root)?#聲明/usr/local/bin/hellorpm將出現在軟件包中?/usr/local/bin/hellorpm?#聲明并設置文件屬性?%doc%attr(0444,root,root)/usr/local/man/man1/hellorpm.1?#同上,聲明文檔文件?%docREADME-------------------------------------------------------------------------------這個文檔需要說明的一點:?buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root?上面buildroot變量表示的是源碼的臨時按照目錄,rpmbuild就是通過次目錄獲得將要按照到系統中的所有文件,而在SPEC文檔后面makeinstall命令中的參數DESTDIR=$RPM_BUILD_ROOT即是對該參數的引用,這個參數將傳給Makefile文件一告訴自動構建工具應該安裝文件那里(實際上我再前文提到過的Makefile需要作一些改造以適應RPM的構建就包括此操作,你的Makefile文件中至少要知道在RPM構建過程中引用此參數的值去控制安裝操作的目標)。?如上一個簡單的SPEC文檔撰寫完成,下面把一個名為hellorpm-2.2.6.tar.gz的源碼壓縮文件放到?rpmbuild根目錄下的SOURCES目錄下(注,確保此歸檔文件解壓后的目錄為hellorpm-2.2.6,否則會有問題)。?到此一個完整的rpm打包環境已經構建完成,下面我們就可以開始構建二進制和源代碼RPM包。?3構建RPM包?構建RPM包是有命令rpmbuild在SPEC的指導下完成。?開始構建操作,首先進入到當前用戶的rpmbuild根目錄(即上面提到的目錄環境)。?#cd~/rpmbuild/?執行如何命令,-ba表示buildall,即生成包括二進制包和源代碼包的所有RPM包,下來如果正常的話,rpmbuild將正常退出,同時在RPMS目錄和SRPMS目錄中將生成對應的RPM包。?#rpmbuild-baSpecs/hellorpm.spec?這里僅僅介紹了一個最簡單軟件的最簡單的RPM的打包操作過程,諸如帶有共享文件的需要進行復雜配置的具有復雜依賴關系的等等的項目的打包以及后期的維護,包括補丁的制作我將在下來的時間完成補充更新,今天時間不早了,該休息了!注:費了大半夜的功夫,搞出這么個令人不滿意的文檔,我思考著,這樣做有多少意義呢?不敢重復發明輪子的,站到巨人的肩膀你才能看得更遠,是這樣嗎?是不是下周開始立個計劃,每周至少翻譯三篇fedora官網的文檔給自己練練手。???以上就是系統大全給大家介紹的如何使的方法都有一定的了解了吧,好了,如果大家還想了解更多的資訊,那就趕緊點擊系統大全官網吧。??本文來自系統大全http:///如需轉載請注明!推薦:win7純凈版

為你推薦
資訊專欄
熱門視頻
相關推薦
linux批量重命名 Windows7設置蘋果綠 Linux系統怎么架設共享文件服務器 Ubuntugrubrescue主引導修復 Win8系統怎么樣合并多個txt文件 LinuxSSH無密碼login linux編譯內核及添加系統調用2 win8怎么查看顯示器分辨率 Linux下Vim工具常用命令 win8觸摸板怎么樣設置圖 VNC遠程連接Linux系統設置 LINUXscp命令 ftp530沒有權限 Linux設備文件和普通文件 Linux下配置VNC Linux多命令順序執行 etcfstab文件出錯無法進入Linux系統 Win81Update無法啟動命令幫修復辦法 win81語言包安裝如何操作win881語言包安裝辦法 linux下使用tar命令 解答功能升級解決Win81Update更新問題的辦法 設置多次開機密碼輸入錯誤就鎖定電腦 win81電源管理在何處 不用360如何去除Windows7快捷方式箭頭 Win8鼠標取消單擊鎖定的方法 修改linux下命令提示行路徑長度 Win8系統屏幕亮度調節不了怎么辦 windows7設置防火墻以禁止其他主機訪問本機某 輸入法詞庫導出到其他輸入法的方法輸入法詞庫 Win8軟鍵盤在哪Win81屏幕鍵盤怎么打開的辦法 讓Windows8異地更新計算機的桌面背景 linux下lftp連接ftp服務器上傳下載命令 win8無法關機怎么辦windows8系統關機教程 Linux日志清除 linux下的基本指令使用和makefile的配置 裝完Win81后關機變重啟的處理辦法 Linux常見目錄詳解圖 魯大師風扇轉速是哪個風扇魯大師檢查風扇轉 Win81遠程桌面怎么樣連接設置 Linux中三個重要時間
Top 主站蜘蛛池模板: 欧美国产一区二区三区 | 萌白酱喷水 | 亚洲视频免费在线观看 | 久久精品2 | 国产精品亚洲欧美一区麻豆 | 成人精品视频在线观看 | 日韩一二三 | 亚洲欧美日韩精品专区卡通 | 色综合色狠狠天天综合色 | 欧美一区二区三区香蕉视 | 91精品久久久久久久久网影视 | 另类日韩| 日本一区二区三区免费观看 | 日韩欧美综合在线 | 欧美 日韩 国产 在线 | 综合 欧美 国产 视频二区 | 欧美亚洲第一页 | 日韩欧美一二三区 | 欧美 亚洲 另类 热图 | 亚洲精品在线免费观看视频 | 久久久久久久一精品 | 国内精品一级毛片免费看 | 日本不卡视频在线观看 | 五月婷婷中文字幕 | 亚洲伊人天堂 | 一区二区成人国产精品 | 99久久国内精品成人免费 | 国产美女视频黄a视频免费全过程 | 国产ssss在线观看极品 | 91麻豆精品国产91久久久久久 | 欧美 日韩 视频 | 国产成人精品一区二区三区… | 国产精品黄大片在线播放 | 亚洲欧美日韩中文无线码 | 亚洲欧美日本在线观看 | 美女视频黄a视频免费全过程在线 | 欧美日韩另类国产 | 精品国产欧美一区二区 | 精品免费久久久久国产一区 | 国产精品成人第一区 | 国产嘿咻视频 |