Linux前端包管理工具yum的简单使用

Linux前端包管理工具yum的简单使用

文本目录:

  • yum工具的工作流程简单介绍
  • yum客户端配置文件
  • yum工具使用
  • 案例-本地光盘设置为可用的yum仓库

1. yum工作流程简单介绍

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

与yum相关的资源主要有以下几个:
1、yum repository: yum repo –> 软件仓库
存储了众多的rpm包,以及与包相关的元数据文件,元数据文件放置于特定的目录下(repodata),其并不是本来就存在,在自己创建yum软件仓库时,可使用createrepo工具创建生成各rpm包的元数据文件。

2、yum客户端配置文件
其配置文件主要有两类,/etc/yum.conf 配置文件为所有仓库提供公共的配置,/etc/yum.repos.d/*.repo配置文件为各软件仓库提供配置,进行分而治之,方便管理。
3、文件共享服务器
yum软件仓库的rpm包可通过共享文件服务器进行文件上传下载,其支持以下四类文件服务:
ftp服务: ftp://
http服务: http://
nfs服务: nfs://
本地服务: file:///

附一张简单粗暴的简图,帮助理解。
这里写图片描述

工作流程

在通过yum工具下载rpm包时,内核会读取yum的配置文件,通过指定的URL连接到远程yum仓库(如果仓库中有诸多的rpm包,遍历寻找会消耗诸多时间),将 yum仓库中的rpm包元数据文件通过文件共享服务器下载至本地缓存中,系统会解析各安装包的关系,本地存在的会在本地加载,不存在的则通过元数据文件链接到远程仓库进行下载。

# Problem: 如果远程仓库进行更新或升级,应当如何处理?

远程仓库进行更新或升级,本地缓存无法得知,因而yum工具在下载元数据的同时,会把文件的校验码数据也下载到缓存中,当远程仓库进行更新时,yum管理工具会下载更新后的检验码数据文件与缓存中的做对比,如果发生改变,则清空缓存中的原数据文件,进行重新下载。

2. yum客户端配置文件

2.1 yum配置文件

yum客户端配置文件主要有两大类,使用 rpm -qc yum 可以查询yum管理工具的所有配置文件:

[root@www yum.repos.d]# rpm -qc yum
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf

yum常用的配置文件如下

  • /etc/yum.conf 为所有的仓库提供公共的配置文件,一般里面的内容不需要修改。
  • /etc/yum.repos.d/*.repo 为各仓库的指向提供配置,比如仓库的id号,仓库名称,是否启用等信息。
[root@www ~]# ls /etc | grep -E yum (查询yum的配置文件)
yum
yum.conf
yum.repos.d
[root@www ~]# ls /etc/yum.repos.d/(列出各软件仓库的配置文件)
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo

2.2 仓库指向的定义

如何定义一个软件仓库,需要指定哪些参数,各参数有哪些含义,可以使用命令 man yum.config 来查看各变量的含义及解释;

[root@www ~]# man yum.conf

先放张图来显示yum.conf里的内容,可使用vi进行查看。
这里写图片描述
下面就常用的一些参数进行简短说明,日常配置中大多数可以碰到。

yum 软件仓库配置参数:

参数解释
[repositoryid]软件仓库的id,最好不要和其他仓库重名
name=指明软件仓库的名称
baseurl=指明软件仓库的路由信息
mirrorlisturl镜像列表,与baseurl选其一
enable=[0 | 1]是否启用该软件仓库
gpgcheck=[0 | 1]是否校验数据完整性和来源合法性
repo_gpgcheck=[0 | 1]是否使用密钥验证元数据的合法性
gpgkey=URL指明密钥的路由
failovermethod=[ roundrobin | priority ]故障转移方法,默认为roundrobin,随机挑选, priority 按优先级查找
cost=指明开销,默认为1000

示例:自行配置一个yum软件仓库
Note: URL必须指向元数据文件所在的目录(repodata存在的目录)

[root@www ~]# cd /etc/yum.repos.d
[root@www yum.repos.d]# ls
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@www yum.repos.d]# vi CentOS-cloud.repo
# 编辑CentOS-cloud.repo文件
[cloud]
name=cnetos7 cloud x86_64 openstack-ocata
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-ocata/
gbgcheck=0
enable=1
#显示本地可用的yum仓库
[root@www yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                      | 3.6 kB  00:00:00     
cloud                                                                                                                                     | 2.9 kB  00:00:00     
extras                                                                                                                                    | 3.4 kB  00:00:00     
updates                                                                                                                                   | 3.4 kB  00:00:00     
cloud/primary_db                                                                                                                          | 848 kB  00:00:00     
repo id                                                            repo name                                                                               status
base/7/x86_64                                                      CentOS-7 - Base                                                                         9,911
cloud                                                              cnetos7 cloud x86_64 openstack-ocata                                                    1,967
extras/7/x86_64                                                    CentOS-7 - Extras                                                                         370
updates/7/x86_64                                                   CentOS-7 - Updates                                                                      1,054
repolist: 13,302

效果展示:
这里写图片描述

3. yum工具使用

命令行格式:yum [options] [command] [package …]

3.1 仓库相关命令

Command解释
repolist [all | enabled | disabled]显示仓库列表(all-所有, enabled-启用, disabled-禁用)
repoinfo [all | enabled | disabled]显示仓库信息(all-所有, enabled-启用, disabled-禁用)

3.2 程序包相关命令

Command解释
list [all | available | updates | installed | ] [glob_exp1]显示程序包(available:未安装但可用)
info […]查看程序包的infomation
install package1 [package2] […]安装程序包
reinstall package1 [package2] […]重新安装程序包
update [package1] [package2] […]升级程序包
remove | erase package1 [package2] […]卸载程序包
provides | whatprovides feature1 [feature2] […]查看功能由哪些程序包提供
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]清理本地缓存
search string1 [string2] […]以指定的关键字搜索程序包和summary信息,模糊匹配
deplist package1 [package2] […]查看指定的程序包的依赖包
history [info|list|packages-list|packages-info|summary|stats]查看yum事务历史(yum实行修改操作,会触发一次事务,事务有阻塞和隔离,串行执行)
install可用于安装本地的rpm包

3.3 程序包组相关命令

Command解释
grouplist查看包组
groupinstall group1 group2 …安装包组
groupremove group1 group2 …删除包组
groupinfo group1 …查看包组详细信息

4. 本地光盘设置为可用的yum仓库

[root@www media]# mount | grep "cdrom"   #查询光盘设备是否挂载
[root@www media]# mount  -r /dev/cdrom /media/cdrom  #挂载光盘设备
[root@www media]# mount | grep "cdrom"
/dev/sr0 on /media/cdrom type iso9660 (ro,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500)
[root@www media]# cd /media/cdrom
[root@www cdrom]# ls    #显示软件仓库数据
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
[root@www cdrom]# cd /etc/yum.repos.d/
[root@www yum.repos.d]# ls
CentOS-Base.repo  CentOS-cloud.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@www yum.repos.d]# vi CentOS-local.repo    #新建仓库指向
[root@www yum.repos.d]# yum repo list   #显示可以的仓库
Loaded plugins: fastestmirror, langpacks
No such command: repo. Please use /usr/bin/yum --help
[root@www yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
local                                                                                                                                     | 3.6 kB  00:00:00     
(1/2): local/group_gz                                                                                                                     | 166 kB  00:00:00     
(2/2): local/primary_db                                                                                                                   | 3.1 MB  00:00:00     
repo id                                                            repo name                                                                               status
base/7/x86_64                                                      CentOS-7 - Base                                                                         9,911
cloud                                                              cnetos7 cloud x86_64 openstack-ocata                                                    1,967
extras/7/x86_64                                                    CentOS-7 - Extras                                                                         370
local                                                              centos7 local cdrom                                                                     3,971
updates/7/x86_64                                                   CentOS-7 - Updates                                                                      1,054
repolist: 17,273
[root@www yum.repos.d]# 

这里写图片描述

[root@www yum.repos.d]# vi CentOS-local.repo

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值