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 update和apt 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会建议安装chromiumSnap)。- 新增
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,因为第三方仓库可能不兼容新版本。
CLOUD技术笔记