在 CentOS 系统中,下载和安装软件是系统管理与日常维护的核心任务之一,得益于其基于 Red Hat 的企业级血统,CentOS 提供了多种成熟且可靠的软件包管理方式,掌握这些方法,不仅能高效地部署应用,还能确保系统的稳定与安全,本文将详细介绍在 CentOS 上下载软件的几种主流途径,从推荐的包管理器到高级的源码编译,帮助您根据不同场景选择最合适的方案。

使用 YUM/DNF 包管理器(推荐方法)
对于绝大多数用户而言,使用系统自带的包管理器是安装软件的最佳选择,它如同一个官方的“应用商店”,能够自动处理软件包之间的复杂依赖关系,极大地简化了安装过程。
在 CentOS 7 及更早版本中,主要使用 yum(Yellowdog Updater Modified),而从 CentOS Stream 8 开始,dnf(Dandified YUM)成为了默认的包管理器。dnf 是 yum 的现代继承者,性能更优,依赖解析能力更强,许多常用命令在两者之间是通用的,使用体验非常相似。
以下是 yum 和 dnf 的核心操作命令对比:
| 操作 | YUM 命令 (CentOS 7) | DNF 命令 (CentOS Stream 8/9) |
|---|---|---|
| 搜索软件包 | yum search <关键词> |
dnf search <关键词> |
| 查看软件包信息 | yum info <软件包名> |
dnf info <软件包名> |
| 安装软件包 | yum install <软件包名> |
dnf install <软件包名> |
| 更新软件包 | yum update <软件包名> |
dnf update <软件包名> |
| 卸载软件包 | yum remove <软件包名> |
dnf remove <软件包名> |
| 列出所有已安装包 | yum list installed |
dnf list installed |
| 清理缓存 | yum clean all |
dnf clean all |
使用示例:
假设您想安装文本编辑器 nano,只需在终端中执行:
sudo dnf install nano
系统会自动从配置好的软件源中下载 nano 及其所有依赖项,并进行安装。
使用 RPM 命令安装本地软件包
您可能已经从某个网站下载了一个 .rpm 格式的软件包文件,或者官方软件源中没有您需要的特定版本,这时,可以使用 rpm 命令进行本地安装。
rpm 是底层的管理工具,它的特点是直接,但缺点是不会自动解决依赖关系,如果安装的包依赖其他未安装的库,安装过程将会失败,您需要手动去寻找并安装所有依赖项。
常用 rpm 命令:
-
安装软件包:
rpm -ivh package.rpm-i表示安装,-v显示详细信息,-h显示安装进度条。
-
升级软件包:
rpm -Uvh package.rpm-U选项会先卸载旧版本再安装新版本,如果该包未安装,则执行安装。 -
查询软件包信息(未安装):
rpm -qpi package.rpm-q表示查询,-p指定文件,-i显示信息。 -
卸载软件包:
rpm -e package_name-e表示 erase(擦除/卸载)。
注意: 如果您想用 rpm 安装一个本地包,但又希望它能自动处理依赖(如果依赖项在已配置的软件源中存在),可以使用 yum/dnf 的本地安装功能:sudo dnf install ./package.rpm,这通常是更稳妥的选择。
从源代码编译安装(高级用户)
对于追求极致定制化或需要安装最新开发版软件的高级用户,从源代码编译是终极方案,这种方法给予用户完全的控制权,可以自定义编译选项,但过程也最为复杂,需要具备一定的 Linux 基础知识。
基本编译步骤:
-
安装编译工具: 首先需要安装
Development Tools工具组,它包含了gcc(编译器)、make等必要程序。sudo dnf groupinstall "Development Tools" -
下载源代码: 通常是从软件的官方网站或 GitHub 仓库下载
.tar.gz或.zip压缩包。
-
解压并进入目录:
tar -xvf software.tar.gzcd software -
配置: 运行
configure脚本,此脚本会检查您的系统环境,并生成Makefile文件。./configure -
编译: 使用
make命令根据Makefile将源代码编译成可执行文件。make -
安装: 使用
make install将编译好的文件复制到系统目录(如/usr/local/bin)。sudo make install
从源码安装的软件通常不会被 yum/dnf 管理,升级和卸载需要手动处理(回到源码目录执行 sudo make uninstall,如果该软件支持的话)。
相关问答 (FAQs)
问题1:YUM 和 DNF 有什么本质区别,在 CentOS Stream 9 上我应该用哪个?
回答: DNF 是 YUM 的下一代替代品,核心优势在于拥有更强大、更快速的依赖关系解析引擎,并更好地支持模块化内容,在 CentOS Stream 8 及之后的版本(包括 Stream 9)中,系统默认且唯一支持的包管理器是 DNF,虽然在很多系统中 yum 命令通常会被设置为一个指向 dnf 的别名以保持兼容性,但为了遵循最佳实践和获得完整的功能支持,您应该始终优先使用 dnf 命令。
问题2:如果官方软件源里找不到我想要的某个软件,该怎么办?
回答: 这是一个常见问题,主要有两种解决方法,第一种是启用第三方软件源,最著名的就是 EPEL(Extra Packages for Enterprise Linux),EPEL 为企业级 Linux 提供了大量高质量的额外软件包,您可以通过 sudo dnf install epel-release 来启用它,启用后,再次使用 dnf search 很可能就能找到您需要的软件,第二种方法是直接访问该软件的官方网站,寻找为 CentOS/RHEL 预编译好的 .rpm 下载链接,然后使用 sudo dnf install ./downloaded-package.rpm 的命令进行本地安装,这同样能自动处理来自官方源的依赖。