如果你是 linux 爱好者,应该听说过 Linux 中的包依赖项并很想知道它们究竟是什么。依赖关系可能看起来很混乱,但是 Linux 中有一些工具可以确保您安装的每个程序都具有它需要的所有组件。
现在让我们了解 Linux 依赖项及其对 Linux 包管理的影响。
Linux 依赖项只是程序需要运行的东西。这是因为 Linux 开发人员倾向于以模块化的方式编写程序。这可以追溯到从较小的组件构建程序的“Unix 哲学”。
依赖项通常是共享库。它们可能用于访问数据库、使用网络协议或在屏幕上绘制图形元素。虽然专有程序也使用共享库,但在 Linux 世界中这样做更容易,因为它们通常也是开源的。
依赖项也可以是完整的程序。Linux 世界中的一种常见模式是为现有命令行程序构建 GUI 前端。
使用共享库使开发更容易,因为开发人员不必在每次要创建新应用程序时都想出新的方法来做事。
您可以从开源程序的网站下载源代码并尝试自己编译,但您经常会看到缺少某些内容的错误。这是因为这些项目不包含任何与其程序的依赖关系。他们假设您已经安装了它们或者愿意安装它们。
这在最初的 Unix 时代运行良好,它在小型机和大型机上运行,并有专门的管理人员,但当 Linux 开始在 PC 上流行时,旧的方法对于可能没有太多管理人员的用户来说很难管理。
Linux 发行版开始包含包管理工具,用于跟踪依赖项、通过互联网下载它们、安装它们,并在新版本发布时保持更新。
Flatpak 和 Snap 是通过将依赖项与应用程序一起发布来管理依赖项的最新尝试。这样,依赖项和应用程序可以更好地保持同步。开发人员可以更好地控制应用程序到达用户时的行为方式。
Linux 发行包网站可以显示任何包依赖项。您也可以使用包管理器查看包具有哪些依赖项。
在 Debian 或 Ubuntu 上,使用 APT:
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
⚡ apt show vlc
在 Arch 上,使用带 -Si 选项的 pacman。“依赖于”部分将显示依赖关系。
~/www.linuxmi.com pacman -Si vlc
在 Red Hat 系列的 Linux 发行版上,使用 DNF:
[linuxmi@localhost www.linuxmi.com]$ dnf deplist vlc
依赖关系在 Linux 上并不那么神秘。它们展示了 Linux 程序是如何由较小的组件构建的。包管理器通过跟踪包使安装软件的工作变得更容易。
还可以查看包具有哪些依赖项。它们也是为什么在安装新程序时应该更新包管理器的原因。