在Ubuntu/Debian上安装软件之前检查软件包的依赖是一个非常好的习惯。在本教程中将分享多种方法查看Ubuntu或者基于Ubuntu/Debian分支系统的软件包依赖。
在Ubuntu / Debian中,通过命令行安装应用程序非常容易。您需要做的就是使用apt install package_name。但是,如果您想在安装之前或之后知道软件包的依赖性,该怎么办?
Ubuntu中的软件包依赖关系是什么?
如果您还不了解,有时在Linux中安装软件包时,它需要其他软件包才能正常运行。这些额外的程序包称为依赖项。如果系统上未安装这些依赖软件包,则通常会与该软件包一起自动安装。
例如,用于转换视频格式的GUI工具HandBrake需要FFmpeg和GStreamer。因此对于HandBrake,FFmpeg和GStreamer是依赖项。
推荐阅读:
如何在CentOS 8上安装和使用FFmpeg
如何在Debian 10上安装和使用FFmpeg
如何在Ubuntu 20.04上安装和使用FFmpeg
检查基于Ubuntu和Debian发行版中软件包的依赖关系
正如在Linux中经常发生的那样,有多种方法可以达到相同的结果。让我们看看查看包依赖的各种方法。
使用apt show检查依赖项
您可以使用apt show命令显示软件包的详细信息。此信息的一部分是依赖关系,您可以在Depends开头的行中看到它。
例如,这是ubuntu-restricted-extras软件包的显示内容
abhishek@itsfoss:~$ apt show ubuntu-restricted-extras Package: ubuntu-restricted-extrasVersion: 67Priority: optionalSection: multiverse/metapackagesOrigin: UbuntuMaintainer: Ubuntu Developers <[email protected]>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-cache depends package_name
输出看起来很干净,不是吗?

使用dpkg检查DEB文件的依赖性
apt和apt-cache命令都可以从存储库中获得可用的软件包。但是,如果下载DEB文件,则这些命令将不起作用。
在这种情况下,可以将dpkg命令与-I或–info选项一起使用。
dpkg -I path_to_deb_file
使用apt-rdepends检查依赖性和反向依赖性
如果需要有关依赖项的更多详细信息,可以使用apt-rdepends工具。该工具将创建完整的依赖关系树。因此,您将获得包的依赖关系以及依赖关系。
这不是常规的apt命令,您必须从Universe资源库安装它:
sudo apt install apt-rdepends
根据依赖关系树,输出通常会很大。
Reading package lists... DoneBuilding dependency tree Reading state information... Doneshutter Depends: procps Depends: xdg-utilsimagemagick 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-themelibc6 Depends: libcrypt1 (>= 1:4.4.10-10ubuntu4) Depends: libgcc-s1libcrypt1 Depends: libc6 (>= 2.25)
apt-rdepends工具非常通用。它还可以计算反向依赖性。这意味着,您可以看到哪些其他程序包依赖于某个程序包。
apt-rdepends -r package_name
输出可能会很大,因为它将打印反向依赖关系树。
abhishek@itsfoss:~$ apt-rdepends -r ffmpegReading package lists... DoneBuilding dependency tree Reading state information... Doneffmpeg 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)
以上就是在Ubuntu或者Debian系分支系统上检查软件包依赖的全部内容。
VPS排行榜
评论前必须登录!
注册