如何在基于Ubuntu/Debian的Linux发行版中检查软件包的依赖关系


原文地址:如何在基于Ubuntu/Debian的Linux发行版中检查软件包的依赖关系

在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-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-cache depends package_name

输出看起来很干净,不是吗?

如何在基于Ubuntu/Debian的Linux发行版中检查软件包的依赖关系

使用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... 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)

以上就是在Ubuntu或者Debian系分支系统上检查软件包依赖的全部内容。

评论

登录后评论

服务器优惠活动

Top