但如果你想在安装一个软件包之前或之后知晓这个软件包的依赖,那该怎么办呢?
• 来源:linux.cn • 作者:Abhishek Prakash • 译者:FSSlc •
(本笔墨数:4573,阅读时终年夜约:5 分钟)

在 Ubuntu 或 Debian 中通过命令行来安装运用是一件很大略的事,你只须要实行 apt install package_name 就可以了。
但如果你想在安装一个软件包之前或之后知晓这个软件包的依赖,那该怎么办呢?
在本教程中,我将向你展示多种方法来在 Ubuntu 或其他利用 APT 包管理器 的 Debian 系 Linux 发行版中查看一个软件包的依赖。
什么是 Ubuntu 中的包依赖?当你在 Linux 中安装一个软件包,有时这个软件包还须要其他的软件包来使它事情正常。这些额外的软件包就叫作这个包的依赖。如果这些软件包之前没有在系统中被安装,那么这些依赖在安装这个软件包的同时会被自动安装上。
举个例子,用来转换视频格式的 GUI 工具 HandBrake 须要 FFmpeg 、 GStreamer 软件包。以是对付 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-extrasVersion: 67Priority: optionalSection: multiverse/metapackagesOrigin: UbuntuMaintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>Bugs: https://bugs.launchpad.net/ubuntu/+filebugInstalled-Size: 14.3 kBDepends: ubuntu-restricted-addonsRecommends: libavcodec-extra, ttf-mscorefonts-installer, unrarDownload-Size: 3,200 BAPT-Manual-Installed: yesAPT-Sources: http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 PackagesDescription: 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 文件的依赖
apt 和 apt-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... DoneBuilding dependency treeReading state information... DoneshutterDepends: procpsDepends: xdg-utilsimagemagickDepends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~)imagemagick-6.q16Depends: hicolor-icon-themeDepends: 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-themelibc6Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4)Depends: libgcc-s1libcrypt1Depends: libc6 (>= 2.25)
apt-rdepends 工具的功能非常多样,它还可以用来打算反向依赖。这意味着你可以查看某个特定的包被哪些软件包依赖。
apt-rdepends -r package_name
输出可能会非常多,由于它将打印出反向依赖树。
abhishek@itsfoss:~$ apt-rdepends -r ffmpegReading package lists... DoneBuilding dependency tree Reading state information... DoneffmpegReverse 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: itsfoss.com
作者: Abhishek Prakash 选题: lujun9972 译者: FSSlc 校正: wxy
本文由 LCTT 原创编译, Linux中国 名誉推出
点击“理解更多”可访问文内链接