小知识:如何在基于 Ubuntu 或 Debian 的 Linux 发行版中查看一个软件包的依赖

UbuntuDebian 中通过命令行来安装应用是一件很简单的事,你只需要执行 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 ubunturestrictedextras

Package: ubunturestrictedextras

Version:67

Priority: optional

Section: multiverse/metapackages

Origin:Ubuntu

Maintainer:UbuntuDevelopers<ubuntudeveldiscuss@lists.ubuntu.com>

Bugs: https://bugs.launchpad.net/ubuntu/+filebug

InstalledSize:14.3 kB

Depends: ubunturestrictedaddons

Recommends: libavcodecextra, ttfmscorefontsinstaller, unrar

DownloadSize:3,200 B

APTManualInstalled:yes

APTSources: http://us.archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages

Description:Commonly used media codecs and fonts forUbuntu

This collection of packages includes:

MP3 and other audio codec software to play various audio formats

(GStreamer plugins)

software to install the MicrosoftWeb fonts

the AdobeFlash plugin

LAME, software to create compressed audio files.

.

This software does notinclude libdvdcss2,and will not let you play

encrypted DVDs.Formore 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.Formore 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 noinstallrecommends package_name

使用 apt-cache 来直接获取依赖信息

上面通过 apt show 的方式会获取到大量信息,假如你想在脚本中获取到依赖信息,那么 apt-cache 命令将会给你一个更好且更简洁的输出结果。

aptcache depends package_name

下面的输出看起来更加干净,不是吗?

%小知识:如何在基于 Ubuntu 或 Debian 的 Linux 发行版中查看一个软件包的依赖-猿站网-插图

使用 dpkg 来查看一个 DEB 文件的依赖

apt 和 apt-cache 都作用于软件仓库中的软件包,但假如你下载了一个 DEB 文件,那么这两个命令就不起作用了。

在这种情形下,你可以使用 dpkg 命令的 -I 或 –info 选项。

dpkg I path_to_deb_file

依赖信息就可以在以 “Depends” 开头的那些行中找到。

%小知识:如何在基于 Ubuntu 或 Debian 的 Linux 发行版中查看一个软件包的依赖-1猿站网-插图

使用 apt-rdepends 来查看依赖及依赖的依赖

假如你想查看更多关于依赖的信息,那么你可以使用 apt-rdepends 工具。这个工具可以创建完整的依赖树。这样你就可以得到一个软件包的依赖以及这些依赖的依赖。

它不是一个常规的 apt 命令,所以你需要从 universe 软件仓库中安装上它:

sudo apt install aptrdepends

这个命令的输出通常很多,取决于依赖树的大小。

Readingpackage listsDone

Building dependency tree

Reading state informationDone

shutter

Depends: procps

Depends: xdgutils

imagemagick

Depends: imagemagick6.q16(>=8:6.9.2.10+dfsg2~)

imagemagick6.q16

Depends: hicoloricontheme

Depends: libc6 (>=2.4)

Depends: libmagickcore6.q166(>=8:6.9.10.2)

Depends: libmagickwand6.q166(>=8:6.9.10.2)

hicoloricontheme

libc6

Depends: libcrypt1 (>=1:4.4.1010ubuntu4)

Depends: libgccs1

libcrypt1

Depends: libc6 (>=2.25)

apt-rdepends 工具的功能非常多样,它还可以用来计算反向依赖。这意味着你可以查看某个特定的包被哪些软件包依赖。

aptrdepends r package_name

输出可能会非常多,因为它将打印出反向依赖树。

abhishek@itsfoss:~$ aptrdepends r ffmpeg

Readingpackage listsDone

Building dependency tree

Reading state informationDone

ffmpeg

ReverseDepends: ardourvideotimeline (>=1:5.12.03ubuntu4)

ReverseDepends: deepinscreenrecorder (5.0.01build2)

ReverseDepends: devede (4.15.02)

ReverseDepends: dvdslideshow (0.8.6.11)

ReverseDepends: greenrecorder (>=3.2.3)

我希望这个快速的教程可以帮助你提高一点儿你的命令行知识。为了知晓更多类似小知识点,请保持关注。

原文地址:https://linux.cn/article-12987-1.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux 5.10.5正式发布:禁用FBCON加速滚动

2023-5-3 8:09:40

建站知识

小知识:Linux系统inodes资源耗尽问题

2023-5-3 8:26:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索