CentOS安装软件,yum、rpm、源码三种方式该如何选择呢?

使用 YUM/DNF 包管理器(推荐方式)

对于绝大多数用户而言,使用 YUM(Yellowdog Updater Modified)或其后续版本 DNF(Dandified YUM)是安装、更新和管理软件的首选方法,在 CentOS 7 及更早版本中使用 YUM,而在 CentOS 8 及 Stream 版本中则默认使用 DNF,二者在常用命令上基本兼容。

CentOS安装软件,yum、rpm、源码三种方式该如何选择呢?

这种方式的核心优势在于自动化依赖关系解决,当您安装一个软件时,YUM/DNF 会自动从配置好的软件仓库中下载并安装该软件所需的所有依赖包,极大地简化了操作流程。

常用命令示例:

命令 描述
sudo yum install <package_name> 安装指定的软件包(sudo yum install nginx
sudo yum remove <package_name> 卸载指定的软件包
sudo yum update <package_name> 更新指定的软件包
sudo yum update 更新系统中所有可更新的软件包
yum search <keyword> 根据关键词搜索可用的软件包
yum info <package_name> 查看指定软件包的详细信息,如版本、大小等

操作流程

  1. 搜索软件:在安装前,通常会用 yum search 确认软件包的确切名称。
  2. 执行安装:使用 sudo yum install <package_name> 命令进行安装,系统会列出需要安装的软件包及其依赖项,并询问您是否确认(输入 y 并回车)。
  3. 验证安装:安装完成后,可以通过 which <command_name>rpm -q <package_name> 来验证软件是否已成功安装。

这种方式是管理 CentOS 系统最规范、最安全、最高效的方法,强烈推荐在所有可能的情况下优先使用。


使用 RPM 包进行本地安装

RPM(RPM Package Manager)是 YUM/DNF 的底层工具,它负责实际安装、查询和卸载 .rpm 格式的软件包文件,与 YUM/DNF 不同,RPM 不会自动处理依赖关系

CentOS安装软件,yum、rpm、源码三种方式该如何选择呢?

适用场景

  • 当您无法通过 YUM 仓库安装某个软件,但能从官方网站获取到其 .rpm 安装包时。
  • 在没有网络连接的离线环境中进行软件部署。

常用命令示例:

命令 描述
sudo rpm -ivh <package_file.rpm> 安装一个 RPM 包(i=install, v=verbose, h=hash)
sudo rpm -Uvh <package_file.rpm> 升级一个 RPM 包,如果未安装则进行安装
sudo rpm -e <package_name> 卸载一个已安装的软件包
rpm -qpi <package_file.rpm> 在安装前查询 RPM 包的信息

操作流程与注意事项
当您使用 rpm -ivh 安装一个包时,如果它依赖其他未安装的库或软件,安装过程会失败并报错,您需要手动找到并安装所有缺失的依赖包,这个过程可能非常繁琐,除非必要,否则应尽量避免直接使用 RPM 进行复杂的安装操作。


从源码编译安装(高级方式)

对于需要高度定制化的场景,或者当某个软件没有提供预编译的 RPM 包时,从源代码编译安装是最终极的解决方案,这种方式提供了最大的灵活性,允许您根据系统环境和个人需求选择编译选项(如启用/禁用特定功能、优化性能等)。

基本编译步骤(经典的“三部曲”):

CentOS安装软件,yum、rpm、源码三种方式该如何选择呢?

  1. 准备编译环境:首先需要安装编译所需的工具链,如 gccmake 等,可以通过 sudo yum groupinstall "Development Tools" 来安装整个开发工具组。
  2. 配置:进入解压后的源码目录,执行 ./configure 脚本,该脚本会检查您的系统环境,并生成适合当前系统的 Makefile 文件,您可以通过添加参数(如 ./configure --prefix=/usr/local/app)来指定安装路径等功能。
  3. 编译:执行 make 命令,该命令会根据 Makefile 文件的指示,调用编译器将源代码编译成可执行文件和库。
  4. 安装:执行 sudo make install 命令,该命令会将编译好的文件复制到 configure 阶段指定的系统目录中(默认通常是 /usr/local 下的子目录)。

优点与缺点

  • 优点:高度可定制,能获取到最新版本的软件。
  • 缺点:过程复杂、耗时,且对用户的技术要求较高,最大的问题是难以管理和卸载,编译安装的软件不会被 YUM/DNF 识别,升级和卸载通常需要手动处理,或者回到源码目录执行 sudo make uninstall(如果开发者提供了该功能)。

方法对比小编总结

为了更直观地理解这几种方式的差异,下表对它们进行了小编总结:

安装方式 易用性 依赖关系处理 灵活性/定制性 管理与卸载 推荐用户
YUM/DNF 自动处理 极其方便 所有用户,尤其是初学者和生产环境
RPM 需手动处理 方便 需要安装本地 .rpm 文件的特定场景
源码编译 需手动处理 极高 困难 需要高度定制或无法获取预编译包的高级用户

相关问答 FAQs

Q1: 我应该使用 YUM 还是 RPM?它们有什么根本区别?
A: 根本区别在于依赖关系的管理,YUM(或 DNF)是一个智能的包管理器,它工作在软件仓库的更高层面,能够自动分析并安装软件所需的所有依赖项,让安装过程变得简单可靠,而 RPM 是底层的包安装工具,它只负责处理单个 .rpm 文件,不会去寻找或安装依赖,如果您使用 RPM 安装一个有依赖的包,它会因依赖缺失而失败,在 99% 的情况下,您都应该优先使用 yum installdnf install,只有当您手头有一个独立的 RPM 文件且确信其依赖已满足时,才考虑使用 rpm -ivh

Q2: 我从源码编译安装了一个软件,现在该如何彻底卸载它?
A: 从源码编译安装的软件卸载起来确实比较麻烦,有几种方法可以尝试:

  1. 最佳情况:如果您还保留着当初的源码目录,并且该软件的 Makefile 提供了 uninstall 目标,只需回到该目录执行 sudo make uninstall 即可,这是最干净、最推荐的方法。
  2. 使用 checkinstall:如果在 make install 之前,您使用了 checkinstall 工具(一个能将编译安装过程打包成 RPM 包的实用工具),那么卸载就变得和普通 RPM 包一样简单,使用 sudo rpm -e <package_name> 即可。
  3. 手动删除:如果以上两种方法都不可行,就只能手动删除了,这需要您根据 make install 时的输出(或查看 install.log 文件,如果有的话),找到所有被复制到系统中的文件和目录,然后逐一手动删除,这个过程非常繁琐且容易出错,不推荐,这也凸显了使用包管理器进行软件管理的巨大优势。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-16 13:42
下一篇 2025-10-16 13:44

相关推荐

  • CentOS 7.3如何配置NTP服务进行时间同步?

    在现代服务器管理中,确保系统时间的精确性是至关重要的,无论是用于日志审计、分布式系统协调,还是证书验证,一个统一且准确的时间源都是基础,网络时间协议(NTP)就是这样一种用于同步网络中计算机时间的协议,本文将详细介绍在CentOS 7.3系统上配置NTP服务的完整流程,确保服务器时间与标准时间源保持同步,安装N……

    2025-10-09
    004
  • 如何打造一个服务卓越的高端网站并确保其设备兼容性?

    高端网站建设服务提供专业、定制化的解决方案,确保用户体验和功能性能达到高标准。通过精心设计的界面和优化的代码,创建设备友好型网站,满足不同用户需求,提升品牌形象并增强用户互动。

    2024-07-24
    0012
  • 如何在VMware上为CentOS系统搭建虚拟化环境?

    在现代IT基础设施与开发实践中,虚拟化技术扮演着至关重要的角色,它将物理硬件资源抽象化,使得在单一物理服务器上能够并行运行多个相互隔离的操作系统实例,CentOS,作为以其卓越稳定性、安全性和企业级兼容性而著称的Linux发行版,与VMware这一业界领先的虚拟化解决方案相结合,构建了一个功能强大且应用广泛的虚……

    2025-10-09
    008
  • 服务器png_上传个人头像

    在大多数平台上,您可以通过以下步骤上传个人头像:,,1. 登录您的账户。,2. 导航到个人资料或设置页面。,3. 点击“更改头像”或类似选项。,4. 选择“上传图片”,并从您的设备中选择一张PNG格式的个人头像。,5. 调整图片位置(如果需要),然后保存更改。

    2024-07-03
    003

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信