Linux系统yum命令

本文详细介绍了Linux系统中的yum命令,包括其概述、配置文件、仓库定义以及常用命令用法。yum作为RPM包管理的前端工具,自动处理依赖关系,简化软件安装、升级和卸载。内容涵盖了yum的工作步骤、仓库配置、启用与禁用、包组管理及各种命令选项。此外,还提到了yum的内置变量和即将被dnf命令取代的趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.yum命令概述

1.概述:yum(Yellowdog Update Modifier)是通过分析rpm的标头资料后,根据各软件的依赖关系制作出有依赖关系时的解决方案,可以实现自动处理软件的依赖性问题,去解决软件安装或卸载与升级的问题。
ps:yum仅作为rpm包管理的前端工具,并不能替代rpm包管理工具。

2.yum的实现:
1)由于distribution必须要先释出软件,然后将软件放置于yum服务器上面,用以提供用户端来安装与升级。
2)在需要使用yum的功能时,必须要先找到合适的yum server才行。而每个yum server可能都会提供许多不同的软件功能,yum server会根据功能进行分类,这里的分类就是所谓的仓库(repository)。
3)因此。必须要前往yum server查询到相关的仓库网址后(仓库的路径:repodata目录所在处),再进行后续的配置。

3.yum工作步骤
1.实际上由各主机去访问repo时,先下载仓库的元数据,根据元数据去查询所需要的rpm及其各种依赖关系,之后再在仓库进行相关下载,并自动解决rpm包的依赖关系。
2.并且repo仓库应该是一个文件服务器,一般linux主机在下载过元数据的同时会将其保留在缓存中,以便下次使用。
3.但在repo仓库有进行rpm包的改动时,linux主机会通过其保存的元数据校验码与repo仓库的元数据校验码进行比对,借此手段去确定元数据是否更改,是否需要下载新的repo仓库元数据。

ps:1.centos上yum以后有可能会被dnf命令取代
2.yum repository:yum repo,存放了众多的rpm包,以及包的相关元数据文件(放置于特定目录repodata下)
3.repo仓库应该为一个文件服务器,其应该支持四种格式:ftp://格式http://格式;nfs://格式;file:///(本地文件)格式。

二.yum配置文件及仓库指向定义

1.yum配置文件:
1)/etc/yum.conf:为所有仓库提供公共配置
2)/etc/yum.repos.d/*.repo:为仓库的指向提供配置

2.仓库指向的定义:

  1. [repositoryID]:仓库ID名称
  2. name=Some name for this repository:仓库名字
  3. baseurl=url://path/to/repository/:仓库路径
  4. enabled={1|0}:此仓库是否启用,默认为1启用
  5. gpgcheck={1|0}:是否检查rpm合法性及完整性,默认1为启用
  6. gpgkey=URL:指向rpm包秘钥路径
  7. enablegroups={1|0}:rpm包是否根据功能启用分组,默认1为启用
    8)failovermethod={roundrobin|priority}:失败过度的方法,默认为roundrobin随机挑选剩余仓库路径,priority为按优先级执行,即按顺序执行
    9)cost=:默认为1000,根据cost值大小去选择同一类rpm包的仓库,cost值越小越优先选择

ps:/etc/yum.conf文件

[root@kasumi ~]# cat /etc/yum.conf 
[main]
cachedir=/var/cache/yum/$basearch/$releasever(缓存目录)
keepcache=0(是否保留缓存)
debuglevel=2(调试级别)
logfile=/var/log/yum.log(yum安装程序包后用到的日志文件)
exactarch=1(是否精确平台匹配,适应centos6的rpm,在centos7上及不会安装)
obsoletes=1
gpgcheck=1
plugins=1(是支持插件机制)
installonly_limit=5(同时按装几个程序包)
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release(当前发行版的版本号在哪获取)

三.yum命令的用法

1.yum命令

1.yum语法:yum [options] [command] [package ...]
1)repolist [all | enabled | disabled]:显示仓库列表

[root@kasumi yum.repos.d]# yum repolist
已加载插件:fastestmirror, langpacks
testrepo   ps:本地yum仓库                                                                         | 3.6 kB  00:00:00     
(1/2): testrepo/primary_db                                                          | 5.7 MB  00:00:00     
(2/2): testrepo/group_gz                                                            | 156 kB  00:00:00     
Loading mirror speeds from cached hostfile
源标识                                         源名称                                                 状态
testrepo                                       Centos7 repotest                                       9,591
repolist: 9,591

ps:使用all选项可列出当前所有repo,enabled可列出已启用的repo,disabled列出为禁用的repo
在这里插入图片描述
2)yum list [all | glob_exp1] [glob_exp2] [...]:显示程序包,可搭配通配符使用

[root@kasumi yum.repos.d]# yum list "z*"
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
已安装的软件包
zenity.x86_64                                       3.22.0-1.el7                                  @anaconda 为安装时系统安装的rpm
zip.x86_64                                          3.0-11.el7                                    @anaconda
zlib.x86_64                                         1.2.7-17.el7                                  @anaconda
zsh.x86_64                                          5.0.2-28.el7                                  installed 之后自己已安装的rpm
可安装的软件包
zlib.i686                                           1.2.7-17.el7                                  testrepo 属于testrepo源的rpm
zlib-devel.i686                                     1.2.7-17.el7                                  testrepo 
zlib-devel.x86_64                                   1.2.7-17.el7                                  testrepo 
zlib-static.i686                                    1.2.7-17.el7                                  testrepo 
zlib-static.x86_64                                  1.2.7-17.el7                                  testrepo 
zsh-html.x86_64                                     5.0.2-28.el7                                  testrepo 
zziplib.i686                                        0.13.62-5.el7                                 testrepo ·		
zziplib.x86_64                                      0.13.62-5.el7                                 testrepo 
zziplib-devel.i686                                  0.13.62-5.el7                                 testrepo 
zziplib-devel.x86_64                                0.13.62-5.el7                                 testrepo 
zziplib-utils.x86_64                                0.13.62-5.el7                                 testrepo 

ps: yum list {available|installed|updates} [glob_exp1] […];其中available表示可用单位安装的rpm,installed表示已安装的rpm,updates表示用于更新的rpm。

3)install package1 [package2] [...]:安装程序包,可安装多个

[root@kasumi yum.repos.d]# yum install gcc
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-16.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================================================
 Package             架构                   版本                            源                        大小
===========================================================================================================
正在安装:
 gcc                 x86_64                 4.8.5-16.el7                    testrepo                  16 M

事务概要
===========================================================================================================
安装  1 软件包

总下载量:16 M
安装大小:37 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : gcc-4.8.5-16.el7.x86_64                                                                1/1 
  验证中      : gcc-4.8.5-16.el7.x86_64                                                                1/1 

已安装:
  gcc.x86_64 0:4.8.5-16.el7                                                                                

完毕!

ps:reinstall package1 [package2] […] 进行重新安装

4)update [package1] [package2] [...]:升级程序包
ps:使用downgrade package1 [package2] […] :降级程序包

5)check-update:检查可用的升级包

6)remove | erase package1 [package2] [...] :卸载程序包

[root@kasumi yum.repos.d]# yum remove gcc
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-16.el7 将被 删除
--> 解决依赖关系完成

依赖关系解决

============================
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值