Linux软件包管理教程_RPM与APT包安装与升级解析

5次阅读

Linux 软件包管理分 RPM(yum/dnf)和 APT 两大体系,分别用于 Red Hat 系和 Debian/Ubuntu 系,核心是依赖解析与仓库管理;RPM 需避免直接 rpm 安装,APT 升级分 upgrade 与 full-upgrade;跨版本升级 RPM 系通常需重装,Debian 系支持 do-release-upgrade;查命令所属包用 dnf provides 或 dpkg -S。

Linux 软件包管理教程_RPM 与 APT 包安装与升级解析

Linux 软件包管理核心在于理解发行版所用的包管理系统:RPM 体系(如 CentOS、RHEL、Fedora)用 yumdnf,Debian/Ubuntu 系列用 APT。两者命令逻辑不同,但目标一致——安全、可靠地安装、升级、卸载和查询软件。

RPM 包的安装与依赖处理

RPM 是底层包格式(.rpm 文件),但直接用 rpm -i 安装常因缺少依赖失败。推荐通过高层 工具yumdnf)操作,它们自动解析并安装依赖。

  • 安装本地 RPM 包(自动解决依赖):
    sudo dnf install ./package-name.rpm(Fedora/RHEL 8+)或 sudo yum localinstall package-name.rpm(旧版 RHEL/CentOS 7)
  • 仅查看 RPM 包内容(不安装):
    rpm -qpl package-name.rpm
  • 强制安装(不推荐,易破坏系统):
    sudo rpm -ivh --force --nodeps package-name.rpm —— 仅调试或离线环境临时使用

APT 包管理常用操作

APT 是 Debian 系发行版的 前端 工具,底层调用 dpkg,但由 apt(或 apt-get)统一处理依赖和仓库同步。

  • 更新软件源列表(升级前必做):
    sudo apt update
  • 安装软件(含依赖):
    sudo apt install nginx
  • 升级已安装的全部软件:
    sudo apt upgrade(保守升级)或 sudo apt full-upgrade(可移除 / 重装包以满足依赖)
  • 查找包含某文件或功能的包:
    apt search nginxapt-file search /usr/bin/python3(需先 sudo apt install apt-file && sudo apt-file update

升级 系统版本 时的关键 区别

RPM 系发行版(如 CentOS → Rocky Linux)通常不支持原地大版本升级(如 CentOS 7 → 8),需重新部署;而 Debian/Ubuntu 支持跨版本升级(如 Ubuntu 22.04 → 24.04),通过 sudo do-release-upgrade 触发。

  • RHEL/CentOS 用户迁移建议使用官方工具(如 leapp)或切换至兼容发行版(如 AlmaLinux、Rocky Linux)
  • Ubuntu 升级前确保 /etc/update-manager/release-upgrades 中设为 Prompt=lts(LTS 间升级)或 normal(含非 LTS)
  • 无论哪种系统,升级前务必备份重要配置和数据,并在测试环境验证

如何查清一个命令来自哪个包

快速定位命令所属软件包,有助于排查缺失、重装或了解依赖来源。

  • RPM 系:
    dnf provides /usr/bin/wgetyum whatprovides wget
  • Debian/Ubuntu:
    apt install apt-file && apt-file update && apt-file search /usr/bin/wget,或更轻量的 dpkg -S $(which wget)(仅对已安装包有效)

掌握 RPM 和 APT 的核心逻辑比死记命令更重要:前者围绕“仓库 + 元数据 + 依赖图”,后者强调“源列表 + 缓存 + 事务一致性”。用对工具,系统维护就事半功倍。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-06发表,共计1492字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources