千家信息网

怎么在基于Ubuntu或Debian的Linux 发行版中查看一个软件包的依赖

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关怎么在基于Ubuntu或Debian的Linux 发行版中查看一个软件包的依赖,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 Ub
千家信息网最后更新 2025年12月03日怎么在基于Ubuntu或Debian的Linux 发行版中查看一个软件包的依赖

这篇文章将为大家详细讲解有关怎么在基于Ubuntu或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 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 文件的依赖

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... DoneBuilding dependency treeReading 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的Linux 发行版中查看一个软件包的依赖"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

软件 软件包 信息 命令 推荐 输出 工具 发行 更多 篇文章 仓库 作用 功能 多种 就是 开头 文件 方法 正如 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蔚来招聘软件开发 什么样的网络安全文章好 路由器的radius服务器ip是什么意思 实验室网络安全注意事项 德阳星美姬软件开发 工厂软件开发 无理需求 网络安全公司涉及的成本 网络安全教育第二节视频 数据库视图动态结果 数据库信息系统需要哪些硬件设备 服务器硬盘有必要选sas吗 在源头上堵住网络安全漏洞 五台县网络安全大队 北京大通日盛工程软件开发 c 软件开发项目描述 科尔摩根服务器怎么使用 王牌战争为什么服务器消失 无线网络安全监管哪家价格实惠 程序软件开发好做么 软件开发商有前景吗 数据库系统由什么管理数据 网络安全服务公司知乎 济宁网络安全警察公务员待遇 电脑登录云服务器方法 数据传到服务器之后怎么显示 集体企业网络安全案例 恋爱软件开发背景 绿联打印服务器好用吗 软件开发服务营改增 天津云海互联网科技有限公司
0