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


APT HOWTO (Obsolete Documentation)
第 5 章 - 獲取套裝軟體資訊


有些基於APT系統的前端程序,能十分方便地獲得系統套裝軟體列表,列表包括可安 裝或已安裝的套裝軟體,還可以顯示某套裝軟體屬於哪個section,它的優先等級是多少, 它的說明文件等等。

但是...在此我們想的學習如何使用APT本身來完成。你如何找出你想要安裝的軟體 包的名稱?

我們完成這個工作的方法有很多。我們從apt-cache開始,APT系統使用 這個程序來維護它的資料庫。下面我們通過一些實際操作來對它做個概覽。


5.1 獲得套裝軟體名稱

假設你十分懷念玩Atari 2600的好日子,你決定用APT安裝一個Atari emulator, 隨後再下載幾個游戲,你可以這樣:

      # apt-cache search atari
      atari-fdisk-cross - Partition editor for Atari (running on non-Atari)
      circuslinux - The clowns are trying to pop balloons to score points!
      madbomber - A Kaboom! clone
      tcs - Character set translator.
      atari800 - Atari emulator for svgalib/X/curses
      stella - Atari 2600 Emulator for X windows
      xmess-x - X binaries for Multi-Emulator Super System

我們找到了幾個相關的套裝軟體,以及有關的簡單描述。想進一步獲得某個套裝軟體的 詳細資訊,你可以執行:

      # apt-cache show stella  
      Package: stella
      Priority: extra
      Section: non-free/otherosfs
      Installed-Size: 830
      Maintainer: Tom Lear <tom@trap.mtview.ca.us>
      Architecture: i386
      Version: 1.1-2
      Depends: libc6 (>= 2.1), libstdc++2.10, xlib6g (>= 3.3.5-1)
      Filename: dists/potato/non-free/binary-i386/otherosfs/stella_1.1-2.deb
      Size: 483430
      MD5sum: 11b3e86a41a60fa1c4b334dd96c1d4b5
      Description: Atari 2600 Emulator for X windows
       Stella is a portable emulator of the old Atari 2600 video-game console
       written in C++.  You can play most Atari 2600 games message it.  The latest
       news, code and binaries for Stella can be found at:
       http://www4.ncsu.edu/~bwmott/2600

螢幕上顯示出這個套裝軟體的詳細資訊及其用途的完整描述。如果你的系統中已安裝 了某個套裝軟體而系統又搜索到它的新版本,系統會將它們的詳細資訊一並列出。如 下例:

      # apt-cache show lilo
      Package: lilo
      Priority: important
      Section: base
      Installed-Size: 271
      Maintainer: Russell Coker <russell@coker.com.au>
      Architecture: i386
      Version: 1:21.7-3
      Depends: libc6 (>= 2.2.1-2), debconf (>=0.2.26), logrotate
      Suggests: lilo-doc
      Conflicts: manpages (<<1.29-3)
      Filename: pool/main/l/lilo/lilo_21.7-3_i386.deb
      Size: 143052
      MD5sum: 63fe29b5317fe34ed8ec3ae955f8270e
      Description: LInux LOader - The Classic OS loader can load Linux and others
       This Package contains lilo (the installer) and boot-record-images to
       install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
       .
       You can use Lilo to manage your Master Boot Record (message a simple text screen)
       or call Lilo from other Boot-Loaders to jump-start the Linux kernel.
      
      Package: lilo
      Status: install ok installed
      Priority: important
      Section: base
      Installed-Size: 190
      Maintainer: Vincent Renardias <vincent@debian.org>
      Version: 1:21.4.3-2
      Depends: libc6 (>= 2.1.2)
      Recommends: mbr
      Suggests: lilo-doc
      Description: LInux LOader - The Classic OS loader can load Linux and others
       This Package contains lilo (the installer) and boot-record-images to
       install Linux, OS/2, DOS and generic Boot Sectors of other OSes.
       .
       You can use Lilo to manage your Master Boot Record (message a simple text screen)
       or call Lilo from other Boot-Loaders to jump-start the Linux kernel.

注意,首先列出的是可用套裝軟體,接著列出的是已安裝套裝軟體。獲取某個套裝軟體的 一般資訊可執行:

      # apt-cache showpkg penguin-command
      Package: penguin-command
      Versions: 
      1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
      
      Reverse Depends: 
      Dependencies: 
      1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) 
      Provides: 
      1.4.5-1 - 
      Reverse Provides:

如果只有想了解某套裝軟體的與哪些套裝軟體關聯,可執行:

      # apt-cache depends penguin-command
      penguin-command
        Depends: libc6
        Depends: libpng2
        Depends: libsdl-mixer1.1
        Depends: libsdl1.1
        Depends: zlib1g

總之,有一系列工具可幫助我們找到我們想要的套裝軟體。


5.2 使用dpkg尋找套裝軟體名稱

另一個定位套裝軟體的方法是知道套裝軟體中某個關鍵檔案的名稱。例如,你編譯時需 要某個“.h”頭檔案,尋找提供該檔案的套裝軟體,你可以執行:

      # dpkg -S stdio.h
      libc6-dev: /usr/include/stdio.h
      libc6-dev: /usr/include/bits/stdio.h
      perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

或是:

      # dpkg -S /usr/include/stdio.h
      libc6-dev: /usr/include/stdio.h

解系統中已安裝軟體的套裝軟體名稱十分有用,譬如當你想清理硬碟空間時,可以執行:

      # dpkg -l | grep mozilla
      ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

這個命令的缺點是它會“截斷”套裝軟體的名字。在上例中,套裝軟體的全稱是 mozilla-browser,解決這個問題可以使用COLUMNS環境變數:

      [kov]@[couve] $ COLUMNS=132 dpkg -l | grep mozilla
      ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser

或顯示成這樣:

      # apt-cache search "Mozilla Web Browser"
      mozilla-browser - Mozilla Web Browser

5.3 如何“按需”安裝套裝軟體

你正在編譯某段程序,突然,停住了!一條錯誤資訊報告說你沒有它需要的.h頭檔案。讓auto-apt來救你吧,它問你是否要安裝需要 的套裝軟體,然後挂起編譯進程,安裝好套裝軟體後再恢復編譯進程。

你所要做的只有只有是:

      # auto-apt run command

這裡“command”指在執行程序中可能出現“需求檔案不存在”問題的命令。例如:

      # auto-apt run ./configure

一會兒,它就會告訴你要安裝所需的套裝軟體並自動前往apt-get處理。如果你正在 執行X,就會一個圖形界面提示視窗。

為了提高效率auto-apt所用的資料庫需要實時更新。可調用 auto-apt updateauto-apt updatedbauto-apt update-local來完成更新。


5.4 如何知道檔案屬於哪個套裝軟體

如果你想安裝某個套裝軟體,但用apt-cache查不出它的名稱,不過你 知道這個程序的檔案名稱,或這個套裝軟體中某些檔案的檔案名稱,那麼你可以用apt-file來尋找套裝軟體名稱。如下所示:

      $ apt-file search filename

它用起來很象dpkg -S,不過它還會列出包含該檔案的已刪除套裝軟體。它 也可以用來尋找哪個套裝軟體包含編譯時所缺的檔案,當然,解決這類問題auto-apt可能是更好的方案,請參考如何“按需”安裝套裝軟體, 第 5.3 節

用這個命令,你可以列出套裝軟體的內容:

      $ apt-file list packagename

apt-file用一個資料庫來存放所有套裝軟體的內容資訊,和auto-apt 一樣,這個資料庫也需要實時更新,完成更新可以執行:

      # apt-file update

預設情況下,apt-fileauto-apt使用同一個資料庫, 參考如何“按需”安裝套裝軟體, 第 5.3 節


5.5 如何掌握套裝軟體的變化情況

在每個套裝軟體被安裝以後,都會在文件目錄(/usr/share/doc/packagename) 產生一個changelog.Debian.gz的檔案,這個檔案記錄了該套裝軟體最後一 次更新對系統做了哪些修改,你可以用zless閱讀這些資訊。不過當你對 整個系統進行升級以後,逐個檢視套裝軟體的更新資訊可不是件容易事。

有一個工具能幫你完成這項工作,它就是apt-listchanges。首先你 要裝上apt-listchanges套裝軟體。在安裝的程序中,為了進行配 置,Debconf會問你一些問題,按你的要求回答它們就行了。

第一個問題是問你希望apt-listchanges如何來顯示修改日誌。你可以讓它把資訊 通過信件的方式發送給你,這對於自動更新是非常有用的。或是你可以讓它在less等程序中顯示修改日誌,這樣在繼續升級前你就可以檢視它們了。如果 你不希望apt-listchanges在升級的時候自動的執行,可以 回答none

安裝了apt-listchanges後,每當apt下載套裝軟體之後(不論來來源是Internet、光碟 或是硬碟)都會顯示這些套裝軟體的系統更新資訊。


[ 上一頁 ] [ 目錄 ] [ 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