亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 765 | 回復(fù): 0
打印 上一主題 下一主題

兩種主要的打包格式 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-01-26 15:11 |只看該作者 |倒序瀏覽

兩種主要的打包格式
Linux 發(fā)行版使用的打包格式主要有兩種:Redhat Package Manager (RPM) 和 Debian (DEB)。兩者的用途差不多,而具體的方法不同?偟膩碚f,兩者都是“增強的”文件檔案格式。這些包格式提供的增強包括:版本號注釋、應(yīng)用程序?qū)ζ渌麘?yīng)用程序或庫的依賴性、打包工具的可讀性描述、管理安裝、升級和卸載的打包工具通用機制。
在 DEB 文件中,嵌套的配置文件 control 包含大多數(shù)包元數(shù)據(jù)。而 RPM 文件中則是 spec。以這兩種格式創(chuàng)建包的完整細(xì)節(jié)超出了本教程的范圍,這里僅作基本介紹。


回頁首
.deb 文件中包括什么?
DEB 包使用存檔工具和 tar 的近親 ar(或某種使用 ar 的更高級的工具)創(chuàng)建。因此可使用 ar 查看 .deb 文件的內(nèi)容。通常使用更高級的工具如 dpkg、dpkg-debapt-get 與 DEB 包打交道。比如:
      % ar tv unzip_5.51-2ubuntu1.1_i386.deb
      rw-r--r-- 0/0      4 Aug  1 07:23 2005 debian-binary
      rw-r--r-- 0/0   1007 Aug  1 07:23 2005 control.tar.gz
      rw-r--r-- 0/0 133475 Aug  1 07:23 2005 data.tar.gz
文件 debian-binary 只包括 DEB 版本號(目前為 2.0)。檔案 data.tar.gz 包含實際的應(yīng)用程序文件 —— 可執(zhí)行文件、文檔、手冊、配置文件,等等。
檔案 control.tar.gz 從打包的角度來看最有趣。我們來看看這個 DEB 包:
      % tar tvfz control.tar.gz
      drwxr-xr-x root/root         0 2005-08-01 07:23:43 ./
      -rw-r--r-- root/root       970 2005-08-01 07:23:43 ./md5sums
      -rw-r--r-- root/root       593 2005-08-01 07:23:43 ./control
與預(yù)料的一樣,md5sums 包含所有分發(fā)文件的加密散列值用于驗證。元數(shù)據(jù)包含在 control 文件中。多數(shù)情況下,可能會發(fā)現(xiàn)或希望在 control.tar.gz 中包含名為 postinstprerm 的腳本,分別用于在安裝后和刪除前執(zhí)行某些步驟。


回頁首
創(chuàng)建 DEB control 文件
安裝腳本可以做 shell 腳本能夠做的任何事情(看看現(xiàn)有包中的一些例子就知道了)。但是這些腳本是可選的,常常不需要或者沒有。.deb 包需要的是 control 文件。該文件的格式包括各種元數(shù)據(jù)字段,最好用一個例子來說明:
      % cat control
      Package: unzip
      Version: 5.51-2ubuntu1.1
      Section: utils
      Priority: optional
      Architecture: i386
      Depends: libc6 (>= 2.3.2.ds1-4)
      Suggests: zip
      Conflicts: unzip-crypt (
      Description: De-archiver for .zip files
       InfoZIP's unzip program. With the exception of multi-volume archives
       (ie, .ZIP files that are split across several disks using PKZIP's /& option),
       this can handle any file produced either by PKZIP, or the corresponding
       InfoZIP zip program.
       .
       This version supports encryption.
基本上,除了自定義的數(shù)據(jù)值以外,您的 control 文件應(yīng)該和這個差不多。對非 CPU 專用包,無論是腳本、純文檔或源代碼,都使用 Architecture: all。


回頁首
制作 DEB 包
創(chuàng)建 DEB 包要使用工具 dpkg-deb。我們不可能討論打包的所有細(xì)節(jié),但基本的思路是,創(chuàng)建一個工作目錄 ./debian/,然后在運行 dpkg-deb 之前將所有需要的內(nèi)容放入其中?赡苓需要設(shè)置文件的權(quán)限以便適應(yīng)安裝時需要的狀態(tài)。比如:
      % mkdir -p ./debian/usr/bin/
      % cp foo-util ./debian/usr/bin                # copy executable/script
      % mkdir -p ./debian/usr/share/man/man1
      % cp foo-util.1 ./debian/usr/share/man/man1   # copy the manpage
      % gzip --best ./debian/usr/share/man/man1/foo-util.1
      % find ./debian -type d | xarg chmod 755      # set dir permissions
      % mkdir -p ./debian/DEBIAN
      % cp control ./debian/DEBIAN   # first create a matching 'control'
      % dpkg-deb --build debian      # create the archive
      % mv debian.deb foo-util_1.3-1all.deb  # rename to final package name


回頁首
關(guān)于創(chuàng)建 DEB 包的進一步說明
上一節(jié)中可以看到,./debian/ 下的本地目錄結(jié)構(gòu)是為了和預(yù)期的安裝結(jié)果相匹配。要創(chuàng)建一個好的包,還有幾點值得注意。

  • 通常應(yīng)該創(chuàng)建一個 ./debian/usr/share/doc/foo-util/copyright(根據(jù)包名調(diào)整)文件作為發(fā)行版的一部分。
  • 建立 ./debian/usr/share/doc/foo-util/changelog.gz 和 ./debian/usr/share/doc/foo-utils/changelog.Debian.gz 這兩個文件也是不錯的做法。
  • 工具 lintian 可以檢查 DEB 包中有問題的特性。lintian 提出的問題不是每個都必須修改,但如果希望分發(fā)的范圍更廣,最好修正所有這些問題。
  • 工具 fakeroot 可以幫助正確的所有者進行打包。通常目標(biāo)希望工具作為 root 安裝,而不是恰好生成包的某個用戶(lintian 會對此提出警告)?墒褂萌缦碌拿睿
    % fakeroot dpkg-deb --build debian



回頁首
.rpm 文件包括什么內(nèi)容?
創(chuàng)建包時,RPM 采取了和 DEB 略有不同的策略。它的配置文件稱為 spec 而不是 control,而且 spec 文件的內(nèi)容也比 control 文件多。安裝前后、卸載前和安裝本身需要的所有步驟的細(xì)節(jié)都包含在 spec 配置內(nèi)嵌的腳本文件中。事實上,spec 格式甚至提供了宏和通用動作。
如果需要創(chuàng)建 RPM 包,可使用 rpm -b 工具程序。比如:
      % rpm -ba foo-util-1.3.spec  # perform all build steps
包的構(gòu)建過程不依賴于 DEB 中那些特殊命名的目錄,而是更復(fù)雜的 spec 文件中的指令。


回頁首
創(chuàng)建 RPM 元數(shù)據(jù)
RPM 中的主要元數(shù)據(jù)和 DEB 中的非常類似。比如,foo-util-1.3.spec 可能包含如下所示的內(nèi)容:
      # spec file for foo-util 1.3
      Summary: A utility that fully foos
      Name: foo-util
      Version: 1.3
      Release: 1
      Copyright: GPL
      Group: Application/Misc
      Source: ftp://example.com/foo-util.tgz
      URL: http://example.com/about-foo.html
      Distribution: MyLinux
      Vendor: Acme Systems
      Packager: John Doe
      %description
      The foo-util program is an advanced fooer that combines the
      capabilities of OneTwo's foo-tool and those in the GPL bar-util.


回頁首
RPM 中的腳本
RPM spec 文件中的一些段可以包含一些很小的 shell 腳本。其中包括:

  • %prep:為準(zhǔn)備構(gòu)建而要執(zhí)行的步驟,比如清除以前的(部分)版本。通常下面的宏很有用:
          %prep
          %setup
  • %build:實際構(gòu)建工具的步驟。如果使用 make 工具,可能如下所示:
          %build
          make
  • %install:安裝工具的步驟。如果使用 make,如下所示:
          %install
          make install
  • %files:必須 包含屬于該包的文件列表。即便 Makefile 可能使用這些文件,包管理器程序(rpm)也不會知道它們,除非將它們包含在這里:
          %files
          %doc README
          /usr/bin/foo-util
          /usr/share/man/man1/foo-util.1



本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/29478/showart_238196.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP