[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一頁 ]


APT HOWTO (Obsolete Documentation)
第 6 章 - 來源碼包操作


6.1 下載來源碼包

在自由軟體的世界裡,經常需要學習來源碼或為程序除錯,所以你需要下載它們。APT提 供了一套簡便的方法幫你獲得發佈版中眾多程序的來源程式碼以及建立一個.debs所需的 所有檔案。

Debian來源碼的另一個普遍用途是將unstable發佈版的新版程序進行改寫以供別的發 布版使用。例如,從stable發佈版外引入新的套裝軟體,需要重新產生.debs將它在 原發佈版中的關聯關係遷移到新的發佈版。

要完成這些工作,/etc/apt/sources.list檔案中deb-src所指 參照鏡像來源應該是unstable,別忘了將行首的註解符去掉。詳情參考 /etc/apt/sources.list檔案, 第 2.1 節

用下面的命令下載來源碼包:

      $ apt-get source packagename

通常會下載三個檔案:一個.orig.tar.gz、一個.dsc和一個.diff.gz。對於Debian專用的套裝軟體,不會下載最後一個檔案,第一個檔案的文 件名中沒有“orig”項。

dpkg-source通過.dsc檔案中的資訊,將來源碼包解包到 packagename-version目錄,下載下來的來源碼包中有一個 debian/目錄,裡面是建立.deb包所需的檔案。

想要下載的來源碼包自動編譯成套裝軟體,只需在命令行中加上-b,如下:

      $ apt-get -b source packagename

如果你不打算在下載後就立刻建立.deb檔案,你可以在之後用下面的命令建立:

      $ dpkg-buildpackage -rfakeroot -uc -b

上述命令應當在下載後為套裝軟體建立的目錄中執行。要安裝用這種方式組建好的 套裝軟體,只能直接使用套裝軟體管理器,例如:

      # dpkg -i file.deb

apt-getsource命令與它的其它命令有所不同,普通用 戶就可以執行source命令。檔案被下載到使用者調用apt-source package 命令時所處的目錄中。


6.2 編譯來源碼包所需的套裝軟體

通常,編譯來源碼包時要用到某些頭檔案和共享庫,所有的來源碼包的控制檔案中都 有一個網域“Build-Depends:”,網域中指出了編譯該來源碼包需要哪些附加包。

APT提供了一個簡單的方法下載這些附加包,你只需執行apt-get build-dep package,其中“package”就是你打算編譯的來源碼包 名稱。見下例:

      # apt-get build-dep gmc
      Reading Package Lists... Done
      Building Dependency Tree... Done
      The following NEW packages will be installed:
        comerr-dev e2fslibs-dev gdk-imlib-dev imlib-progs libgnome-dev libgnorba-dev
        libgpmg1-dev 
      0 packages upgraded, 7 newly installed, 0 to remove and 1  not upgraded.
      Need to get 1069kB of archives. After unpacking 3514kB will be used.
      Do you want to continue? [Y/n]

這些將要被安裝的包是用於正確編譯gmc的。注意這個命令不 能用來搜索某個軟體的來源碼包,你得另外執行apt-get source下載來源碼包。

如果你想做的是檢查要編譯一個套裝軟體需要哪些其它的套裝軟體,apt-cache show可以顯示它(從那考獲取套裝軟體資訊, 第 5 章,在眾多資訊之中,Build-Depends一行會列出那些需要的套裝軟體。

      # apt-cache showsrc package

[ 上一頁 ] [ 目錄 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 下一頁 ]


APT HOWTO (Obsolete Documentation)

1.8.10.4 - 2005年3月

Gustavo Noronha Silva kov@debian.org

劉浩 iamlyoo@163.com