一.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.仓库指向的定义:
- [repositoryID]:仓库ID名称
- name=Some name for this repository:仓库名字
- baseurl=url://path/to/repository/:仓库路径
- enabled={1|0}:此仓库是否启用,默认为1启用
- gpgcheck={1|0}:是否检查rpm合法性及完整性,默认1为启用
- gpgkey=URL:指向rpm包秘钥路径
- 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 将被 删除
--> 解决依赖关系完成
依赖关系解决
============================

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

被折叠的 条评论
为什么被折叠?



