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

相关推荐

  • pe下如何安装linux

    PE下安装Linux,可先准备Linux镜像文件,用PE中的磁盘

    2025年8月17日
    6800
  • 虚拟机中linux如何全屏

    虚拟机中,可通过安装VMware Tools或调整虚拟机显示设置

    2025年8月17日
    9100
  • linux如何看到u盘

    Linux中,插入U盘后,可通过终端使用lsblk或`fdisk

    2025年8月19日
    10100
  • 如何正确查看Linux定时任务?

    查看定时任务的两种主要工具Linux系统通过 cron 和 at 管理定时任务:cron:处理周期性任务(如每天、每周),at:处理一次性任务(如2小时后执行),查看cron定时任务查看当前用户的cron任务crontab -l直接列出当前用户的所有定时任务,若显示 no crontab for [user……

    2025年6月30日
    11400
  • Linux ping如何强制结束?

    常规退出方法:使用快捷键按下 Ctrl + C在终端中执行ping命令时(ping example.com),只需按下键盘组合键 Ctrl + C(Control键 + C键),效果:立即终止ping进程,显示统计信息(如发送/接收包数量、丢包率、响应时间),原理:Ctrl + C 向当前前台进程发送 SIGI……

    2025年6月28日
    10800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信