2.1.7. 包管理的事件流

这是 APT 提供的软件包管理的简单事件流摘要。

  • 更新(“apt update”、“aptitude update” 或 “apt-get update”):

    1. 从远程档案库获取档案库元数据

    2. 重建和更新 APT 使用的本地元数据

    • 升级(“apt upgrade” 和 “apt full-upgrade”,或 “aptitude safe-upgrade” 和 “aptitude full-upgrade”,或 “apt-get upgrade” 和 “apt-get dist-upgrade”):
    1. 选择候选版本,它所安装的软件包通常都是最新的可用版本(例外参见 第 2.7.3 节 “调整候选版本”

    2. 解决软件包依赖关系

    3. 如果候选版本与已安装的版本不同,会从远程档案库获取所选择的二进制软件包

    4. 解包所获取的二进制软件包

    5. 运行 preinst 脚本

    6. 安装二进制文件

    7. 运行 postinst 脚本

  • 安装(“apt install ...”、“aptitude install ...“ 或者 “apt-get install …” ):

    1. 选择命令行中列出的包

    2. 解决软件包依赖关系

    3. 从远程服务器获取已选二进制包

    4. 解包所获取的二进制软件包

    5. 运行 preinst 脚本

    6. 安装二进制文件

    7. 运行 postinst 脚本

  • 移除 (”apt remove …“, “aptitude remove …” 或 “apt-get remove …”):

    1. 选择命令行中列出的包

    2. 解决软件包依赖关系

    3. 运行 prerm 脚本

    4. 移除已安装的文件,除了配置文件

    5. 运行 postrm 脚本

  • 清除 (”apt purge“,“aptitude purge …” 或 “apt-get purge …”):

    1. 选择命令行中列出的包

    2. 解决软件包依赖关系

    3. 运行 prerm 脚本

    4. 移除已安装的文件,包含配置文件

    5. 运行 postrm 脚本

这里,为了大局,我特意省略了技术细节。