在 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.gz
cd 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
的命令进行本地安装,这同样能自动处理来自官方源的依赖。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复