包管理器是一个通用概念,并不是 Linux 独有的。你会遇到不同软件或编程语言的包管理器,有专门用于 Python 包的 PIP 包管理器,甚至Atom 编辑器也有自己的包管理器
几乎所有的 Linux 发行版都有软件存储库,它基本上是软件包的集合。是的,可能有多个存储库。存储库包含不同类型的软件包
存储库还有元数据文件,其中包含有关软件包的信息,例如软件包名称、版本号、软件包描述和存储库名称等。当你在 Ubuntu/Debian 中使用apt show 命令时,就会看到这些信息
系统的包管理器首先与元数据交互。包管理器在系统上创建元数据的本地缓存。当你运行包管理器的更新选项(例如 apt update)时,它会通过引用存储库中的元数据来更新此元数据的本地缓存
当你运行包管理器的安装命令(例如 apt install package_name)时,包管理器会引用此缓存。如果它在缓存中找到包信息,它会使用 Internet 连接连接到适当的存储库,并在安装到系统之前首先下载包
一个包可能有依赖关系。这意味着它可能需要安装其他软件包。包管理器通常会处理依赖项并将其与你正在安装的包一起自动安装。同样,当年你使用包管理器删除一个包时,它会自动删除或通知你系统有可以清理的未使用的包
除了安装、删除这些显而易见的任务外,还可以使用包管理器来配置包并根据需要管理它们。例如,你可以阻止从常规系统更新升级包版本