当前位置: 首页 > 科技观察

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

时间:2023-03-16 20:13:55 科技观察

在Ubuntu或Debian中通过命令行安装应用程序是一件非常简单的事情,您只需要执行aptinstallpackage_name。但是如果你想知道一个包在安装之前或之后的依赖关系怎么办?在本教程中,我将向您展示使用APT包管理器在Ubuntu或其他基于Debian的Linux发行版中查看包依赖项的各种方法。Ubuntu中的包依赖项是什么?当你在Linux中安装一个包时,有时这个包需要其他包才能正常工作。这些额外的包称为这个包的依赖项。如果之前系统没有安装过这些包,那么在安装这个包时会自动安装这些依赖。例如,用于转换视频格式的GUI工具HandBrake需要FFmpeg和GStreamer包。所以对于HandBrake来说,FFmpeg和GStreamer是它的包依赖。如果你的系统上没有安装这些包,当你在Ubuntu上安装HandBrake时它们会自动安装。在Ubuntu和基于Debian的发行版中查看包的依赖关系在Linux上经常发生,有多种方法可以实现相同的目标。让我们来看看查看包依赖项的各种方法。使用aptshow查看依赖关系您可以使用aptshow命令显示有关包的详细信息。依赖信息是其中的一部分,您可以在以“Depends”开头的行中看到它们。例如,下面显示的是使用aptshow显示ubuntu-restricted-extras这个包的详细信息:abhishek@itsfoss:~$aptshowubuntu-restricted-extrasPackage:ubuntu-restricted-extrasVersion:67OrigPriorityverse:optional/Section:multissUbuntuMaintainer:Ubuntu开发人员错误:https://bugs.launchpad.net/ubuntu/+filebugInstalled-Size:14.3kBDepends:ubuntu-restricted-addonsRecommends:libavcodec-extra,ttf-mscorefonts-installer,unrarDownload-Size:3,200BAPT-Manual-Installed:yesAPT-Sources:http://us.archive.ubuntu.com/ubuntufocal/multiverseamd64PackagesDescription:Ubuntu常用媒体编解码器和字体本合集软件包包括:-播放各种音频格式的MP3和其他音频编解码器软件(GStreamer插件)-安装MicrosoftWeb字体的软件-Adob??eFlash插件-LAME,创建压缩音频文件的软件。.本软件不包含libdvdcss2,也不会让你播放加密的DVD。有关详细信息,请参阅https://help.ubuntu.com/community/RestrictedFormats/PlayingDVDs。这些软件包来自Multiverse频道,在某些国家受到版权或法律问题的限制。有关详细信息,请参阅http://www.ubuntu.com/ubuntu/licensing如您所见,ubuntu-restricted-extras包依赖于ubuntu-restricted-addons包,但您必须注意依赖包可能还依赖其他包,所以一直兜兜转转直到结束。但幸运的是APT包管理器可以为您处理这些复杂的依赖项,自动安装所有依赖项(在大多数情况下)。什么是推荐包?您是否注意到上面结果输出中以“建议”开头的行?推荐的包不是包的直接依赖,但它们可以启用包的一些附加功能。正如您在上面看到的,ubuntu-restricted-extras包中有推荐的包ttf-mscorefonts-installer用于在Ubuntu上安装Microsoft字体。这些推荐的包也会默认一起安装。如果要明确禁用这些推荐包的安装,可以使用--no-install-recommends选项,如下所示。sudoaptinstall--no-install-recommendspackage_name使用apt-cache直接获取依赖信息上面通过aptshow会获取很多信息,如果想在脚本中获取依赖信息,那么apt-cache命令将为您提供更好、更简洁的输出。apt-cachedependspackage_name下面的输出看起来更干净,不是吗?使用dpkg查看deb文件的依赖关系。apt和apt-cache都适用于软件存储库中的包,但是如果您下载的是DEB文件,那么这两个命令将不起作用。在这种情况下,您可以使用dpkg命令的-I或--info选项。dpkg-Ipath_to_deb_file依赖信息可以在那些以“Depends”开头的行中找到。使用apt-rdepends查看依赖和被依赖如果你想查看更多的依赖信息,那么可以使用apt-rdepends工具。这个工具可以创建一个完整的依赖树。这样你就可以获得一个包的依赖关系以及这些依赖关系的依赖关系。它不是常规的apt命令,因此您需要从universe存储库安装它:sudoaptinstallapt-rdepends此命令的输出通常很多,具体取决于依赖关系树的大小。读取包列表...DoneBuilding依赖树读取状态信息...Doneshutter依赖:procps依赖:xdg-utilsimagemagick依赖:imagemagick-6.q16(>=8:6.9.2.10+dfsg-2~)imagemagick-6.q16依赖:hicolor-icon-theme依赖:libc6(>=2.4)依赖:libmagickcore-6.q16-6(>=8:6.9.10.2)依赖: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-rpackage_name输出可能非常庞大,因为它将打印出反向依赖树。abhishek@itsfoss:~$apt-rdepends-rffmpeg读取包列表...DoneBuilding依赖树读取状态信息...Doneffmpeg反向依赖:ardour-video-timeline(>=1:5.12.0-3ubuntu4)反向依赖:deepin-screen-recorder(5.0.0-1build2)ReverseDepends:devede(4.15.0-2)ReverseDepends:dvd-slideshow(0.8.6.1-1)ReverseDepends:green-recorder(>=3.2.3)我希望本快速教程可以帮助您稍微提高命令行知识。想知道更多类似的小知识点,敬请期待。