菜鸟科技网

rpm安装命令yum

yum 命令本身不是用来安装 .rpm 包的,而是用来管理软件仓库和依赖关系的。

rpm安装命令yum-图1
(图片来源网络,侵删)

您可以把 yum 理解为一个“智能的包管理器”,它的工作方式与直接使用 rpm 命令有本质区别。


rpm 命令:直接安装单个 RPM 包

rpm 是 Red Hat Package Manager 的缩写,它是一个底层的包管理工具,它直接操作 .rpm 文件,但不关心依赖关系

  • 特点

    • 直接操作本地或远程的 .rpm 文件。
    • 不会自动解决依赖问题,如果一个包需要另一个库(依赖项),而你的系统没有安装,rpm 命令会直接报错并失败。
    • 适用于安装已经下载好的、或者自包含的、没有复杂依赖的软件包。
  • 基本用法

    rpm安装命令yum-图2
    (图片来源网络,侵删)
    # 安装本地的 .rpm 文件
    sudo rpm -ivh package-name.rpm
    # 安装来自网络 URL 的 .rpm 文件(不推荐,因为无法解决依赖)
    sudo rpm -ivh http://example.com/path/to/package.rpm
    • -i: install (安装)
    • -v: verbose (显示详细信息)
    • -h: hash (显示安装进度条)

为什么不推荐直接使用 rpm 安装? 因为现代 Linux 系统的软件包之间有复杂的依赖关系,直接使用 rpm 安装一个软件,很可能会因为缺少某个依赖而失败,然后你需要手动去寻找并安装那个依赖,这个过程非常繁琐且容易出错。


yum 命令:智能的仓库管理器

yum (Yellowdog Updater, Modified) 是一个在 rpm 基础上构建的高级包管理器,它最大的优势在于依赖解决

  • 特点

    • 不直接操作 .rpm 文件,它从一个或多个软件仓库 中获取软件包信息。
    • 自动解决依赖关系,当你想安装一个软件时,yum 会自动分析并下载所有它所需要的依赖包,然后一并安装。
    • 更安全yum 会检查软件包的数字签名,确保包的完整性和来源可信。
    • 方便升级和删除,可以轻松地升级整个系统或删除软件及其所有依赖。
  • 基本用法

    rpm安装命令yum-图3
    (图片来源网络,侵删)
    # 搜索仓库中可用的软件包
    yum search <关键词>
    # 显示软件包的详细信息
    yum info <软件包名>
    # 安装软件包 (yum 会自动处理所有依赖)
    sudo yum install <软件包名>
    # 升级软件包
    sudo yum update <软件包名>
    # 删除软件包
    sudo yum remove <软件包名>
    # 清理缓存
    sudo yum clean all

dnf 命令:yum 的现代继任者

从 CentOS 8、Fedora 22 等较新的系统开始,yum 已经被它的下一代版本 dnf (Dandified Yum) 所取代。dnf 拥有 yum 的所有功能,并且在性能、依赖解决和插件系统方面有了显著提升。

在大多数现代系统上,推荐使用 dnf 而不是 yum

dnf 的命令语法与 yum 几乎完全相同:

# 使用 dnf 安装软件 (推荐方式)
sudo dnf install <软件包名>
# 使用 dnf 搜索
dnf search <关键词>

注意:在较新的系统(如 CentOS 8+)上,yum 命令通常是一个指向 dnf 的符号链接,所以即使你输入 yum,系统实际执行的也是 dnf,但在概念上,我们应该知道 dnf 是更现代、更推荐的工具。


总结与对比

特性 rpm 命令 yum / dnf 命令
工作方式 直接操作 .rpm 文件 从软件仓库获取信息
依赖处理 不处理,需要手动解决 自动解决,非常方便
主要用途 安装离线包、修复系统、管理特定包 日常软件的安装、更新、删除
使用场景 没有网络连接。
软件包是自包含的,无依赖。
系统修复。
有网络连接的日常使用。
安装标准库软件(如 nginx, python)。
系统更新。
推荐度 仅用于特定场景 强烈推荐dnf > yum

场景化建议

  • 我需要安装一个从官网下载的 .rpm 文件。

    • 首选方法:将文件放到你的系统中,使用 dnf install /path/to/package.rpmdnf 会尝试从已配置的仓库中解决其依赖,如果仓库中有,就能成功安装。
    • 备选方法dnf 无法解决依赖,再尝试 sudo rpm -ivh package.rpm,但准备好手动解决依赖问题。
  • 我想安装一个常见的软件,htopgit

    • 绝对使用sudo dnf install htopsudo yum install htop,这是最简单、最安全、最可靠的方法。
  • 我的服务器无法连接互联网,无法使用 yum/dnf

    • 这时你只能使用 rpm 命令,你需要提前在有网络的机器上下载好主包和所有依赖包,然后一起传输到离线服务器上,按顺序安装。

希望这个解释能帮助您彻底理解 rpmyum 的区别!

分享:
扫描分享到社交APP
上一篇
下一篇