歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Debian APT HOWTO(四)

Debian APT HOWTO(四)

日期:2017/2/27 9:46:05   编辑:更多Linux
  Debian APT HOWTO 第五章 獲取軟件包信息 APT HOWTO 第五章 獲取軟件包信息 有些基於APT系統的前端程序,能十分方便地獲得系統軟件包列表,列表包括可安裝或已安裝的軟件包,還可以顯示某軟件包屬於哪個域(section),它的優先級(priority)是多少,它的說明文檔,等等。 但是...在此我們想的學習如何使用APT本身來完成。你如何找出你想要安裝的軟件包的名稱? 我們完成這個任務的方法有很多。我們從apt-cache開始,APT系統使用這個程序來維護它的數據庫。下面我們通過一些實際操作來對它做個概覽。 5.1 獲得軟件包名稱 ================== 假設你十分懷念玩Atari 2600的好日子,你決定用APT安裝一個Atari emulator,隨後再下載幾個游戲,你可以這樣: [root]@[/] # 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 我們找到了幾個相關的軟件包,以及有關的簡單描述。想進一步獲得某個軟件包的詳細信息,你可以運行: [root]@[/] # apt-cache show stella Package: stella Priority: extra Section: non-free/otherosfs Installed-Size: 830 Maintainer: Tom Lear 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 with it. The latest news, code and binaries for Stella can be found at: http://www4.ncsu.edu/~bwmott/2600 屏幕上顯示出這個軟件包的詳細信息及其用途的完整描述。如果你的系統中已安裝了某個軟件包而系統又搜索到它的新版本,系統會將它們的詳細信息一並列出。如下例: [root]@[/] # apt-cache show lilo Package: lilo Priority: important Section: base Installed-Size: 271 Maintainer: Russell Coker 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 (with 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 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 (with a simple text screen) or call Lilo from other Boot-Loaders to jump-start the Linux kernel. 注意,首先列出的是可用軟件包,接著列出的是已安裝軟件包。獲取某個軟件包的常規信息可運行: [root]@[/] # 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: 如果僅想了解某軟件包的與哪些軟件包關聯,可運行: [root]@[/] # apt-cache depends penguin-command penguin-command Depends: libc6 Depends: libpng2 Depends: libsdl-mixer1.1 Depends: libsdl1.1 Depends: zlib1g 總之,有一系列工具可幫助我們找到我們想要的軟件包。 5.2 使用dpkg查找軟件包名稱 ========================== 另一個定位軟件包的方法是知道軟件包中某個關鍵文件的名稱。例如,你編譯時需要某個頭文件,查找提供該文件的軟件包,你可以運行: [root]@[/] # 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 或者: [root]@[/] # dpkg -S /usr/include/stdio.h libc6-dev: /usr/include/stdio.h 在清理硬盤空間時,了解系統中已安裝軟件的軟件包名稱十分有用,你可以運行: [root]@[/] # 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

或顯示成這樣: [root]@[/] # apt-cache search "Mozilla Web Browser" mozilla-browser - Mozilla Web Browser 5.3 如何“按需”安裝軟件包 ========================== 你正在編譯某段程序,突然,停住了!一條錯誤信息報告說你沒有它需要的頭文件。讓auto-apt來救你吧,它問你是否要安裝需要的軟件包,然後掛起編譯進程,安裝好軟件包後再恢復編譯進程。 你所要做的僅僅是: auto-apt run command 這裡“command”指在運行過程中可能出現“需求文件不存在”問題的命令。例如: auto-apt run ./configure 一會兒,它就會告訴你要安裝所需的軟件包並自動轉到apt-get處理。如果你正在運行X,就會一個圖形界面提示窗口。 為了提高效率auto-apt所用的數據庫需要實時更新。可調用auto-apt update,auto-apt updatedb和auto-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-file和auto-apt使用同一個數據庫,參閱 5.3如何“按需”安裝軟件包。 5.5 如何掌握軟件包的變化情況 ============================ 在每個軟件包被安裝以後,都會在文檔目錄(/usr/share/doc/packagename)生成一個changelog.Debian.gz的文件,這個文件記錄了該軟件包最後一次更新對系統做了哪些修改,你可以用zless閱讀這些信息。不過當你對整個系統進行升級以後,逐個查看軟件包的更新信息可不是件容易事。 有一個工具能幫你完成這項任務,它就是apt-listchanges



有一個工具能幫你完成這項任務,它就是apt-listchanges



Copyright © Linux教程網 All Rights Reserved