Linux中國

如何在基於 Ubuntu 或 Debian 的 Linux 發行版中查看一個軟體包的依賴

在 Ubuntu 或 Debian 中通過命令行來安裝應用是一件很簡單的事,你只需要執行 apt install package_name 就可以了。

但如果你想在安裝一個軟體包之前或之後知曉這個軟體包依賴,那該怎麼辦呢?

在本教程中,我將向你展示多種方法來在 Ubuntu 或其他使用 APT 包管理器 的 Debian 系 Linux 發行版中查看一個軟體包的依賴

什麼是 Ubuntu 中的包依賴?

當你在 Linux 中安裝一個軟體包,有時這個軟體包還需要其他的軟體包來使它工作正常。這些額外的軟體包就叫作這個包的依賴。假如這些軟體包之前沒有在系統中被安裝,那麼這些依賴在安裝這個軟體包的同時會被自動安裝上。

舉個例子,用來轉換視頻格式的 GUI 工具 HandBrake 需要 FFmpegGStreamer 軟體包。所以對於 HandBrake 來說, FFmpeg 和 GStreamer 就是它的包依賴。

假如在你的系統上這些軟體包沒有被安裝,則當你 在 Ubuntu 上安裝 HandBrake 時,就會自動安裝上它們。

在 Ubuntu 和基於 Debian 的發行版中查看一個軟體包的依賴

正如在 Linux 上經常發生的那樣,有多種方法來達到相同的目標。下面讓我們一起瞧瞧查看一個軟體包依賴的多種方法。

使用 apt show 來查看依賴

你可以使用 apt show 命令 來展示一個包的詳細信息。其中依賴信息就是其中一部分,你可以在以 「Depends」 打頭的那些行中看到它們。

例如,下面展示的是使用 apt show 展示 ubuntu-restricted-extras 這個包的詳細信息:

abhishek@itsfoss:~$ apt show ubuntu-restricted-extras 
Package: ubuntu-restricted-extras
Version: 67
Priority: optional
Section: multiverse/metapackages
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 14.3 kB
Depends: ubuntu-restricted-addons
Recommends: libavcodec-extra, ttf-mscorefonts-installer, unrar
Download-Size: 3,200 B
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages
Description: Commonly used media codecs and fonts for Ubuntu
 This collection of packages includes:
  - MP3 and other audio codec software to play various audio formats
    (GStreamer plugins)
  - software to install the Microsoft Web fonts
  - the Adobe Flash plugin
  - LAME, software to create compressed audio files.
 .
 This software does not include libdvdcss2, and will not let you play
 encrypted DVDs. For more information, see
 https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs
 .
 These software packages are from the Multiverse channel, restricted by
 copyright or legal issues in some countries. For more information, see
 http://www.ubuntu.com/ubuntu/licensing

如你所見,ubuntu-restricted-extras 包依賴於 ubuntu-restricted-addons 這個軟體包。

但你得小心的是依賴包還可能依賴於其他包,這樣一直循環往複直到盡頭。但幸好 APT 包管理器可以為你處理這些複雜的依賴關係,自動地安裝所有的依賴(大多數情況下)。

什麼是推薦包?

你注意到了上面結果輸出中以 「Recommends」 開頭的那些行了嗎?

推薦包不是軟體包的直接依賴,但它們可以開啟軟體包的一些額外功能。

正如你上面看到的那樣, ubuntu-restricted-extras 包有 ttf-mscorefonts-installer 這個推薦包,用來在 Ubuntu 上安裝 Microsoft 的字體。

這些推薦包也會默認被一同安裝上,假如你想顯式地禁止這些推薦包的安裝,你可以像下面這樣使用 –-no-install-recommends 選項。

sudo apt install --no-install-recommends package_name

使用 apt-cache 來直接獲取依賴信息

上面通過 apt show 的方式會獲取到大量信息,假如你想在腳本中獲取到依賴信息,那麼 apt-cache 命令將會給你一個更好且更簡潔的輸出結果。

apt-cache depends package_name

下面的輸出看起來更加乾淨,不是嗎?

使用 dpkg 來查看一個 DEB 文件的依賴

aptapt-cache 都作用於軟體倉庫中的軟體包,但假如你下載了一個 DEB 文件,那麼這兩個命令就不起作用了。

在這種情形下,你可以使用 dpkg 命令的 -I--info 選項。

dpkg -I path_to_deb_file

依賴信息就可以在以 「Depends」 開頭的那些行中找到。

使用 apt-rdepends 來查看依賴及依賴的依賴

假如你想查看更多關於依賴的信息,那麼你可以使用 apt-rdepends 工具。這個工具可以創建完整的依賴樹。這樣你就可以得到一個軟體包的依賴以及這些依賴的依賴。

它不是一個常規的 apt 命令,所以你需要從 universe 軟體倉庫中安裝上它:

sudo apt install apt-rdepends

這個命令的輸出通常很多,取決於依賴樹的大小。

Reading package lists... Done
Building dependency tree
Reading state information... Done
shutter
  Depends: procps
  Depends: xdg-utils
imagemagick
  Depends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~)
imagemagick-6.q16
  Depends: hicolor-icon-theme
  Depends: libc6 (>= 2.4)
  Depends: libmagickcore-6.q16-6 (>= 8:6.9.10.2)
  Depends: libmagickwand-6.q16-6 (>= 8:6.9.10.2)
hicolor-icon-theme
libc6
  Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4)
  Depends: libgcc-s1
libcrypt1
  Depends: libc6 (>= 2.25)

apt-rdepends 工具的功能非常多樣,它還可以用來計算反向依賴。這意味著你可以查看某個特定的包被哪些軟體包依賴。

apt-rdepends -r package_name

輸出可能會非常多,因為它將列印出反向依賴樹。

abhishek@itsfoss:~$ apt-rdepends -r ffmpeg
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ffmpeg
  Reverse Depends: ardour-video-timeline (>= 1:5.12.0-3ubuntu4)
  Reverse Depends: deepin-screen-recorder (5.0.0-1build2)
  Reverse Depends: devede (4.15.0-2)
  Reverse Depends: dvd-slideshow (0.8.6.1-1)
  Reverse Depends: green-recorder (>= 3.2.3)

我希望這個快速的教程可以幫助你提高一點兒你的命令行知識。為了知曉更多類似小知識點,請保持關注。

via: https://itsfoss.com/check-dependencies-package-ubuntu/

作者:Abhishek Prakash 選題:lujun9972 譯者:FSSlc 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國