零基础吃透 CentOS 软件安装:rpm 与 yum 完整教程

📅 2026/7/29 7:09:54
零基础吃透 CentOS 软件安装:rpm 与 yum 完整教程
前言在 Windows 系统里我们安装软件会下载.exe安装包CentOS、RHEL 这类 Linux 系统则统一使用.rpm格式软件包。本文完整讲解底层工具rpm、上层工具yum以及软件仓库配置搭配大量实操命令逻辑清晰看完就能上手操作。一、Linux 两大软件包体系主流 Linux 分为两大阵营软件包互不通用RPM 系列本文讲解代表系统CentOS7、RHEL、Rocky Linux、Fedora软件包后缀.rpm配套工具底层rpm命令、自动管理工具yumDEB 系列简单了解代表系统Ubuntu、Debian、Kali软件包后缀.deb配套工具apt简单类比rpm Windows 离线安装包需要手动处理配套依赖yum 电脑自带应用商店联网一键安装自动补齐所有需要的配套程序。二、RPM 软件包基础认知1. RPM 包名称结构标准格式软件名-原版版本-系统打包版本.架构.rpm示例lrzsz-0.12.20-36.el7.x86_64.rpmlrzsz软件名称0.12.20软件官方原始版本号36.el7打包版本el7代表适配 CentOS7 系统x86_6464 位服务器架构noarch代表通用架构所有机器都能装2. 一个 RPM 包内部包含三类内容程序本体软件运行所需二进制程序、配置文件、帮助文档元数据信息记录软件版本、依赖、版权、开发厂商等信息内置执行脚本安装、升级、卸载时自动运行的脚本。3. RPM 数字签名机制软件厂商会使用一对公私钥管理安装包安全厂商用私钥给 rpm 包签名盖章用户服务器存放厂商公钥安装时校验包是否被篡改、植入恶意程序日常使用阿里镜像源时可设置gpgcheck0临时关闭校验简化操作。4. 特殊规则内核支持多版本共存绝大多数软件同一时间只能保留一个版本升级会直接覆盖旧文件唯独kernel内核包可以同时安装多个版本。如果更新内核后服务器无法启动开机时可以切换旧内核正常进入系统。三、rpm 底层命令详解离线本地包工具rpm工具仅能操作本地已经下载好的 rpm 文件不会联网、不会自动安装依赖缺少依赖时直接报错适合无网络离线场景。1. 查询类命令参数-q日常高频使用1查询单个软件是否安装rpm-qvsftpd输出软件完整包名 已安装提示 “未安装软件包” 系统不存在该软件。2查看系统全部已安装软件rpm-qa# 过滤查询指定相关软件示例查找ssh相关包rpm-qa|grepssh3查看软件完整详情版本、安装时间、版权rpm-qiopenssh-server4查看软件安装后生成的所有文件路径rpm-qlopenssh-server5只查看软件自带配置文件rpm-qcopenssh-server6只查看软件帮助手册文档rpm-qdopenssh-server7根据系统文件反向查询所属软件包修改配置文件后想知道文件属于哪个软件时使用rpm-qf/etc/ssh/sshd_config8查询软件所需依赖包rpm-qRhttpd9查看未安装的 rpm 包内部文件参数-prpm-qlphttpd-2.4.6-99.el7.x86_64.rpm2. 校验软件完整性参数-V用于检测软件文件是否被删除、修改、修改权限rpm-Vopenssh-server无任何输出软件所有文件完好输出字符 文件路径代表对应文件被改动、丢失。3. 安装、卸载、重装本地 rpm 包安装本地包参数-i-v打印详情-h显示进度条rpm-ivhlrzsz-0.12.20-36.el7.x86_64.rpm缺点缺少依赖直接报错需要手动下载对应依赖包。卸载软件参数-e# 正常卸载有依赖占用会提示报错rpm-elrzsz# 强制卸载不推荐容易破坏系统依赖关系rpm-e--nodepslrzsz修复重装损坏的软件包rpm--reinstall-vhlrzsz*.rpm4. 不安装仅提取 rpm 包内文件# 一步提取包内全部文件rpm2cpio 包名.rpm|cpio-id四、yum 软件管理工具线上安装首选yum是基于 rpm 封装的上层工具核心优势联网自动下载软件自动解析并安装全部依赖日常部署软件优先使用 yum。rpm 和 yum 核心区别工具是否联网依赖处理能力使用场景rpm不联网无缺依赖直接报错离线本地 rpm 包yum需要联网自动下载所有依赖服务器常规软件安装1. yum 查询命令查看软件详细介绍、版本、功能描述yum info vsftpd列出软件查看仓库可用版本yum list vsftpd# 展示仓库所有历史版本用于软件降级yum list vsftpd--showduplicates根据关键词搜索相关软件yum searchweb server根据命令 / 文件查询该文件归属哪个软件包yum provides sar2. 安装、下载、升级、降级、卸载在线安装软件-y自动确认交互无需手动输入 yesyuminstall-yvsftpd仅下载 rpm 包不执行安装如果软件已经安装直接执行会无法下载两种稳定方案# 方案1强制重装下载yum reinstall vsftpd--downloadonly--downloaddir/root# 方案2专用下载工具 yumdownloaderyuminstallyum-utils-yyumdownloader vsftpd--destdir/root安装本地 rpm 包自动补齐依赖yum localinstall ./xxx.rpm软件版本升级# 升级单个软件yum update vsftpd-y# 升级系统内全部软件到最新版本yum update-y软件版本降级将新版软件换回旧版本依赖包必须同步降级否则会报依赖错误yum downgrade-yhttpd httpd-tools卸载软件yum remove-yvsftpd3. yum history 操作事务记录yum 会保存每一次安装、卸载、降级操作每条操作分配唯一数字 ID支持回滚、重做。查看全部操作记录yumhistory查看指定编号操作完整日志示例查看第 2 条记录yumhistoryinfo2撤销指定操作回滚自动删除本次安装的所有软件yumhistoryundo4重新执行指定编号的操作yumhistoryredo44. 软件组批量管理软件组是一套配套工具合集例如图形桌面、开发工具一键批量安装无需逐个下载软件。# 列出系统所有可用软件组yum grouplist# -v 参数展示组内包含的所有软件包yum grouplist-v# 查看单个软件组详情yum groupinfoServer with GUI# 安装图形桌面环境yum groupinstallServer with GUI-y# 卸载指定软件组yum groupremoveServer with GUI补充若执行组命令提示无组信息执行yum groups mark convert修复 yum 组数据库。五、YUM 软件仓库repo 源完整讲解yum 下载软件的来源就是 yum 仓库repo 源国内推荐阿里云镜像源下载速度远快官方源。1. 仓库配置文件存放路径全局主配置文件/etc/yum.conf控制 yum 全局行为各软件源独立配置/etc/yum.repos.d/目录下所有.repo文件。/etc/yum.conf 核心配置参数[main] plugins1 # 1开启yum插件0关闭插件消除执行yum时的Loading提示 keepcache0 # 0安装完成后删除rpm缓存1永久保留下载的安装包 gpgcheck1 # 全局默认开启安装包签名校验 cachedir/var/cache/yum # rpm缓存文件存放目录一键关闭 yum 开头插件提示的命令sed-is/plugins1/plugins0/g/etc/yum.conf2. repo 源文件标准格式以阿里云 EPEL 扩展源为例[epel] nameExtra Packages for Enterprise Linux 7 - $basearch baseurlhttp://mirrors.aliyun.com/epel/7/$basearch enabled1 gpgcheck0 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7参数说明[epel]仓库唯一标识名称name仓库备注名称仅用于展示baseurl软件包下载地址enabled1启用该仓库enabled0禁用仓库gpgcheck0关闭安装包安全校验1开启校验。3. 仓库常用运维命令查看当前系统已启用的仓库yum repolist# 查看所有仓库包含禁用状态的仓库yum repolist all启用 / 禁用指定仓库yum-config-manager--enableepel-debuginfo yum-config-manager--disableepel-debuginfo更换源后清理旧缓存并重建元数据yum clean allyum makecache一键下载阿里云 EPEL 扩展源提供大量系统自带源没有的工具curl-s-o/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo自定义添加软件仓库方式 1自动生成 repo 文件yum-config-manager --add-repo仓库地址方式 2手动写入仓库配置多行写入语法catEOF/etc/yum.repos.d/docker-ce.repo[docker-ce-stable] nameDocker CE Stable - $basearch baseurlhttps://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable enabled1 gpgcheck0 EOF补充输入cat EOF 文件后出现提示符代表等待输入多行配置输入完成后单独一行敲EOF结束写入。六、总结rpm是底层包工具仅支持本地离线包不会自动处理依赖适合无网络环境yum基于 rpm 开发联网自动下载软件并补齐全部依赖是日常安装软件的主流工具yum 通过 repo 仓库获取软件更换国内镜像源可以大幅提升下载速度yum history 记录所有软件变更操作支持回滚、重做方便故障恢复软件组功能可以批量安装桌面、开发工具等成套环境简化服务器部署熟练掌握仓库配置、缓存清理、源替换是运维管理 CentOS7 的基础能力。