隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
          數(shù)據(jù)加載中……

          制作Linux RPM包

              RPM是Redhat Package Manage的縮寫(xiě)。透過(guò)RPM的管理,使用者可以把Source Code包裝成一種Source和Binary的檔案形式。利用它,我們可以用Binary的檔案進(jìn)行安裝,用 Source 的檔案形式重新整理包裝。許多Linux愛(ài)好者對(duì)安裝RPM包比較熟悉,但對(duì)如何在Linux下制作RPM包不甚了解,因此,我將通過(guò)實(shí)例,講解如何在Linux下制作RPM包。


          1. 最初要求
          為了創(chuàng)建RPM,你需要RPM要編譯的源代碼、一個(gè)rpmrc文件(設(shè)置一些RPM的缺省值并控制它的行為),以及一個(gè)spec文件(控制包的建立過(guò)程)。這里假定已有其它的開(kāi)發(fā)環(huán)境(gcc、make、install、vi等),而且你的源代碼已經(jīng)編譯成功。

          2. 制作流程
          1)確定/etc/rpmrc(也可能是/usr/lib/rpm/rpmrc)已經(jīng)正確設(shè)定。rpmrc文件控制幾乎所有RPM的行為。如果你 想重載一個(gè)或多個(gè)全局設(shè)置,可以在~/.rpmrc文件中包含你的定制。可以使用rpm--showrc來(lái)顯示RPM的當(dāng)前設(shè)置。大多數(shù)情況下, rpmrc 文件的設(shè)置不需要改變。

          2)取回所建造的源代碼并放入正確的目錄中。

          3)編寫(xiě)spec文件。

          4)使用rpm -ba 來(lái)構(gòu)造整個(gè)程式套件。

          3.應(yīng)用舉例
          現(xiàn)在以L(fǎng)ynx實(shí)用程序來(lái)介紹構(gòu)造RPM包的整個(gè)過(guò)程。Lynx是在文本方式下的Web瀏覽器,可以從ftp://www.slcc.edu/pub/lynx/取得。

          1)得到lynx源代碼。

          2)lynx-2.8.spec文件的詳細(xì)編寫(xiě)方法略。

          3)使用RPM來(lái)構(gòu)造包。

          按照rpmrc文件的缺省設(shè)置,應(yīng)該把lynx-2.8.spec文件放入SPECS/目錄下,然后執(zhí)行:

          rpm -ba lynx-2.8.spec

          其中-b 表示prep、compile、install,并build出一份binary RPM包。-a 表示執(zhí)行所有的build動(dòng)作,即還要build 出一份source code RPM包。

          如果一切順利的話(huà),可以在RPMS/目錄下找到lynx-2.8-4.i386.rpm文件。可以執(zhí)行:

          rpm -qpl lynx-2.8-4.i386.rpm

          來(lái)觀察RPM 包中是否包含了要求的所有文件。

          為了測(cè)試它的正確性,可以拷貝此文件到另一臺(tái)機(jī)器上,并執(zhí)行:

          rpm -ivh lynx-2.8-4.i386.rpm

          進(jìn)行安裝測(cè)試。

          一旦測(cè)試成功,就可以上載你的大作,享受成功的喜悅。

          小結(jié)

               制作RPM包需要開(kāi)發(fā)人員做很多工作。比如不僅要懂得c/c++編程,而且還要能熟練掌握像make、autoconf、diff、 patch、tar、install等工具的使用并能編寫(xiě)spec文件。但從長(zhǎng)遠(yuǎn)來(lái)看,應(yīng)用RPM,在軟件包的維護(hù)和方便性方面使得開(kāi)發(fā)者受益。

          原文:http://www.host01.com/article/server/00070002/0542417260388231.htm





          Android開(kāi)發(fā)完全講義(第2版)(本書(shū)版權(quán)已輸出到臺(tái)灣)

          http://product.dangdang.com/product.aspx?product_id=22741502



          Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


          新浪微博:http://t.sina.com.cn/androidguy   昵稱(chēng):李寧_Lining

          posted on 2009-05-19 08:54 銀河使者 閱讀(896) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): linux

          主站蜘蛛池模板: 吉林市| 绍兴市| 文化| 岳阳县| 中宁县| 南投市| 苏州市| 天全县| 黄山市| 当涂县| 竹北市| 富裕县| 宁乡县| 天全县| 渝中区| 吴堡县| 山西省| 盘山县| 宿州市| 凌源市| 同心县| 任丘市| 鄂托克前旗| 裕民县| 敦煌市| 华容县| 新巴尔虎左旗| 藁城市| 汝城县| 青浦区| 定日县| 宁国市| 岐山县| 平定县| 仙游县| 梅州市| 开远市| 顺义区| 邯郸市| 循化| 涟水县|