Ubuntu 22.04和18.04在软件包管理和APT工具上有何不同?

Ubuntu 22.04(Jammy Jellyfish)和18.04(Bionic Beaver)在软件包管理和APT工具上的主要区别如下:


1. APT版本与功能

  • Ubuntu 18.04:默认使用 APT 1.6.x,支持基础依赖解析、apt命令(替代apt-get)已普及,但部分功能如apt list --installed的输出格式较简单。
  • Ubuntu 22.04:使用 APT 2.4.x 或更高版本,改进包括:
    • 更快的依赖解析算法,提升apt updateapt upgrade效率。
    • 增强的apt list命令,支持更灵活的过滤(如--upgradable)。
    • 更好的错误提示,对依赖冲突、仓库签名问题等提供更清晰的解决方案建议。

2. 默认仓库与软件包版本

  • Ubuntu 22.04
    • 默认使用 Python 3.10(18.04为Python 3.6)。
    • GCC 11(18.04为GCC 7)。
    • systemd 249(18.04为systemd 237),影响软件包的服务管理。
    • 内核版本更新(5.15 LTS),对硬件支持更佳。
  • 软件包策略:22.04移除部分过时软件包(如Python 2相关包),并推动Snap替代部分传统deb包(如Chromium、Firefox)。

3. Snap集成与默认安装

  • Ubuntu 18.04:引入Snap,但传统deb包仍占主导。
  • Ubuntu 22.04更深度集成Snap
    • 默认通过Snap分发部分核心应用(如Firefox)。
    • apt命令会提示某些软件包已转为Snap版本(例如sudo apt install chromium-browser会建议安装chromium Snap)。
    • 新增snap命令的别名管理(如snap refresh自动更新Snap应用)。

4. 安全性与签名验证

  • Ubuntu 22.04
    • 强制使用SHA-256校验(18.04支持但未全面强制)。
    • APT对仓库签名验证更严格,减少中间人攻击风险。
    • 默认启用apt-secure的增强模式,对过期证书或弱签名发出警告。

5. 新APT特性与命令改进

  • apt命令的进度条:22.04中下载进度显示更直观(彩色且支持终端重绘)。
  • apt autoremove更智能:自动清理无用依赖时增加确认提示,避免误删。
  • apt policy输出优化:显示更多版本详细信息,便于仓库优先级调试。
  • 支持第三方仓库的自动清理apt update会提示失效的PPA或仓库。

6. 底层依赖变化

  • Ubuntu 22.04使用libssl 3.x(OpenSSL 3.0),而18.04使用libssl 1.1.x,影响软件包加密通信和依赖库的编译。
  • dpkg版本升级:22.04的dpkg支持更快的数据库操作,尤其在大量软件包更新时。

7. 网络与镜像优化

  • Ubuntu 22.04的APT默认启用IPV6优先(若网络支持),并改进镜像选择逻辑(mirror://协议更高效)。
  • 引入APT压缩传输优化,减少apt update的带宽占用。

总结建议

  • 升级到22.04:可获得更快的APT性能、更好的安全性和新软件包,但需注意Snap的强制使用可能影响某些工作流。
  • 停留在18.04:适合依赖旧版软件(如Python 2)或稳定环境,但需注意2023年4月后社区支持终止(仅付费ESM支持)。

注意:若从18.04升级到22.04,建议先清理无用PPA,因为第三方仓库可能不兼容新版本。

云服务器