Linux系统如何用yum命令安装软件包?

Linux系统中,yum(Yellowdog Updater, Modified)是一款常用的包管理工具,主要用于自动化安装、更新和卸载软件包,并能自动解决依赖关系,广泛应用于基于RPM的发行版,如CentOS、RHEL、Fedora等,本文将详细介绍如何使用yum进行软件包管理,包括基础配置、安装步骤、常用命令及问题排查等内容。

linux如何用yum安装

yum的基础配置

yum的核心是仓库(Repository)配置,仓库指向软件包存储的位置,系统通过仓库获取软件包信息,仓库配置文件通常位于/etc/yum.repos.d/目录下,以.repo为后缀(如CentOS-Base.repo),每个仓库配置包含以下关键参数:

参数 说明 示例值
[repositoryid] 仓库唯一标识,方括号内自定义 [base]
name 仓库描述,便于识别 CentOS-7 – Base
baseurl 仓库地址,支持HTTP、FTP、本地路径 http://mirror.centos.org/centos/7/os/x86_64/
enabled 是否启用该仓库(1为启用,0为禁用) 1
gpgcheck 是否校验GPG签名(1为校验,0为不校验) 1
gpgkey GPG密钥文件路径,用于校验软件包完整性 http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

配置示例
以CentOS 7为例,默认仓库文件CentOS-Base.repobaseurl可能需要更换为国内镜像源(如阿里云、网易)以加速下载,修改baseurl为:

[base]
name=CentOS-7 - Base - 163.com
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

修改完成后,执行yum clean allyum makecache刷新缓存。

安装前的准备工作

  1. 检查网络连接
    yum需要从仓库下载软件包,确保网络正常,可通过ping www.baidu.com测试,或使用curl http://mirror.centos.org检查仓库地址可访问性。

  2. 确认软件包来源
    官方仓库(如Base、Extras)包含稳定软件包,第三方仓库(如EPEL、Remi)提供额外软件包,若需使用第三方仓库,需先安装对应的仓库配置文件(如安装EPEL仓库:yum install epel-release)。

  3. 更新软件包缓存
    执行yum makecache将仓库中的软件包信息加载到本地缓存,避免后续操作因缓存过旧报错。

使用yum安装软件包

安装单个软件包

使用yum install 包名命令,yum会自动解决依赖并安装所需软件包,例如安装wget

yum install wget

执行过程中,系统会显示软件包信息及依赖关系,输入y确认安装,安装完成后,可通过rpm -q wgetyum list installed | grep wget验证是否安装成功。

linux如何用yum安装

安装多个软件包

通过空格分隔多个包名,一次性安装多个软件包,例如同时安装vimtree

yum install vim tree

安装指定版本的软件包

若需安装特定版本,可通过yum list 包名查看可用版本,然后使用yum install 包名-版本号安装,例如查看nginx版本并安装1.18版本:

yum list nginx          # 查看可用版本,如nginx.x86_64  1.18.0-1.el7.ngx
yum install nginx-1.18.0-1.el7.ngx

安装本地.rpm软件包

若已下载.rpm文件到本地,使用yum localinstall 包名.rpm安装,yum会自动处理依赖关系,例如安装本地的google-chrome-stable.rpm

yum localinstall google-chrome-stable.rpm

yum常用命令

命令 功能 示例
yum update 更新所有已安装软件包到仓库中的最新版本 sudo yum update
yum update 包名 更新指定软件包 sudo yum update nginx
yum list available 列出仓库中所有可安装的软件包 yum list available | grep httpd
yum list installed 列出已安装的软件包 yum list installed
yum search 关键词 根据关键词搜索软件包(模糊匹配) yum search download
yum info 包名 查看软件包详细信息(版本、大小、依赖等) yum info nginx
yum remove 包名 卸载软件包(保留配置文件) sudo yum remove nginx
yum erase 包名 卸载软件包(同时删除配置文件) sudo yum erase nginx
yum clean all 清理所有缓存(包括已下载的软件包、元数据等) sudo yum clean all
yum history list 查看yum操作历史记录 yum history list
yum history undo ID 撤销指定ID的yum操作(如安装、更新) yum history undo 3

高级操作与问题排查

配置第三方仓库

以安装EPEL(Extra Packages for Enterprise Linux)仓库为例,该仓库提供大量常用软件包(如htopgit):

# 安装EPEL仓库配置文件
yum install epel-release
# 验证仓库是否启用
yum repolist enabled "epel*" --verbose

解决依赖问题

若安装软件包时提示“依赖冲突”,可通过以下方式解决:

  • 跳过损坏依赖yum install 包名 --skip-broken(不推荐,可能导致功能异常)
  • 清理未完成的事务yum-complete-transaction --cleanup-only
  • 手动安装依赖包:通过yum deplist 包名查看依赖列表,逐个安装缺失的依赖。

常见错误排查

  • 错误1:No package available
    原因:仓库中无该软件包,或仓库未启用。
    解决:检查仓库名称是否正确(如CentOS-7而非CentOS-8),或通过yum repolist查看启用的仓库。

  • 错误2:Cannot retrieve repository metadata (repomd.xml)
    原因:仓库地址无法访问或元数据损坏。
    解决:检查网络连接,更换仓库镜像源,执行yum clean metadata清理元数据后重试。

相关问答FAQs

Q1:yum和apt有什么区别?
A:yum和apt均为Linux系统包管理工具,但适用场景不同:

linux如何用yum安装

  • yum:基于RPM包管理,主要用于CentOS、RHEL、Fedora等系统,通过仓库管理软件包,支持依赖自动解决。
  • apt:基于DEB包管理,主要用于Debian、Ubuntu等系统,命令更简洁(如apt install替代yum install),支持源码编译安装(通过apt build-dep)。
    两者核心功能一致(安装、更新、卸载软件包),但底层包格式和命令语法不同。

Q2:如何查看某个软件包是由哪个仓库安装的?
A:可通过以下两种方式查询:

  1. 使用yum info命令

    yum info 包名

    在输出信息中查看From repository字段,显示软件包来源的仓库名称。

  2. 查看/var/log/yum.log日志文件

    grep "Installed" /var/log/yum.log | grep 包名

    该日志记录了所有yum操作,可通过关键字过滤找到安装记录。

已全面覆盖yum安装软件包的基础操作、高级技巧及问题处理,用户可根据实际需求灵活应用,高效管理Linux系统软件包。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26705.html

(0)
酷番叔酷番叔
上一篇 2025年9月20日 08:18
下一篇 2025年9月20日 08:34

相关推荐

  • cdlinux如何抓包?操作步骤与工具方法详解?

    CDLinux作为一款轻量级的Linux应急响应系统,内置了丰富的网络分析工具,常用于网络故障排查、安全检测和数据包捕获,其抓包功能主要依赖Wireshark(图形界面)和tcpdump(命令行)两大工具,以下是详细操作步骤及注意事项,准备工作:启动系统并确认网络接口启动CDLinux将CDLinux系统通过U……

    2025年9月25日
    11400
  • 关键步骤如何避开风险?

    充分准备是基础,明确关键步骤确保执行效率,同时时刻保持风险意识,预见潜在问题并制定预案,三者协同保障任务成功。

    2025年7月24日
    13000
  • Linux中二维数组如何实现?有哪些方法?

    在Linux环境下,二维数组的实现主要依赖于编程语言自身的特性,而Linux作为操作系统,为这些语言的运行提供了底层支持(如内存管理、进程调度等),不同语言在二维数组的内存布局、动态扩展、操作便捷性上存在差异,本文将从C、C++、Python三种主流语言出发,详细解析其在Linux环境下的实现原理及操作方法,C……

    2025年10月7日
    13500
  • Linux下如何检测CPU是否超频?

    在Linux系统中,检测硬件是否超频是系统维护、性能排查或稳定性分析的重要环节,超频可能通过手动调整CPU、GPU、内存等硬件的频率、电压或时序实现,虽然能提升性能,但也可能导致系统不稳定、硬件寿命缩短等问题,Linux提供了多种工具和方法来检测硬件的实际运行状态,判断是否存在超频行为,以下从CPU、GPU、内……

    2025年10月8日
    11300
  • Linux服务器内存过高如何排查解决?实用方法步骤全攻略

    Linux系统在日常运行中,管理员常会遇到内存占用过高的情况,但“内存过高”并不等同于“内存不足”,Linux的内存管理机制会主动将空闲内存用于缓存和缓冲区,以提高文件读写和系统响应速度,因此通过free命令查看时,“used”内存较高可能是正常现象,真正需要关注的是是否存在内存泄漏、进程异常占用内存导致系统卡……

    2025年10月8日
    12100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信