CentOS系统的程序包管理:yum

yum 介绍

YUM(Yellowdog Update Modifier)是 rpm 的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具

yum 工作原理

YUM 是基于 CS 架构的,服务器作为YUM源,其中会有一个 repodate 的目录,里面包含了 YUM 源里所有 RPM 包的元数据、版本、依赖关系等内容(也可以使用 creatrepo 命令生成此文件,但是要注意先后顺序:现有 rpm 包,再生成 repodate 目录,如果 rpm 包有所更新,repodate 目录也要做做相应的更新)。在客户端首次向 YUM 源服务器访问时,会下载此文件,存储在客户端的缓存里,下次可以加快访问。
但是为了保证此文件的实时性和准确性,repodate 目录中还会生成一个 repomd.xml 文件,如果 YUM 源有任何更新,此文件也会相应更新。所以,客户端再次访问 YUM 源服务器时,首先进行此文件匹配,如果文件不一致,则会重新下载 repodate 目录;如果文件一致时,则不会更新。

注意: repodate 目录就是在仓库指向配置中,YUM 仓库源指向的 url 路径。

[root@LeeMumu repodata]# ls
080687b3c5697ad4d989b884e28308f0ef3d95f6de47f198227b71137b198b0a-other.sqlite.bz2
24469c26099924b2d0d981fbe353ff880844ca73793a49860a2675d6d53d4a27-primary.xml.gz
a507512e8150d2a570a414000780ddcfe2dfa9e0010d3e07172d34e0157fa55b-filelists.xml.gz
ad33ec2117aef227db84d240b2f2eebf07b3467ec013ef7d81f2814f1ea4ceda-primary.sqlite.bz2
af7695324ff369fb66e1c0a6998b28ed6417fc214bb2e1c4ffffd37b64caa2ae-other.xml.gz
b09e48e6f2b2c87c36253fff8f94fcf444f59de37e731a15a5ec2c1c63d1e94f-filelists.sqlite.bz2
repomd.xml

rpm 包管理工具

yum 和 dnf 都是 rpm 包的管理工具,解决了 rpm 包依赖等方面的问题。但是再使用 yum 安装程序时,如果突然关机,再次启动时,此前的安装工作是无法继续的,因为 yum 无法得知具体的安装进度。 dnf 工具主要是解决 yum 此方面的问题,其它功能同 yum 一致。

# CentOS: yum, dnf

# yum repository: yum repo
	# 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

# 文件服务器:
	http://
	https://
	ftp://
	file:///

yum 客户端

yum客户端配置文件路径:

# /etc/yum.conf                # 为所有仓库提供公共配置
# /etc/yum.repos.d/*.repo      # 为仓库的指向提供配置

注意:yum 的主文件 yum.conf 里包含了 yum.repos.d/*.repo
	 使用 yum 时,只会处理以 .repo 结尾的文件
	 多 repo 文件便于管理,CentOS 惯于此种方法进行配置文件设置
	 一个 repo 也可以指定多个仓库

/etc/yum.conf

/etc/yum.conf 定义了yum的工作特性。使用 man yum.conf 可以查看具体含义。

# cat /etc/yum.conf
[main]                     # 主配置文件
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0          
debuglevel=2
logfile=/var/log/yum.log
exactarch=1                 # 精确严格的平台匹配
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

#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d          # yum 仓库 ID

查看 yum.conf 的文件帮助手册:

[root@LeeMumu repodata]# whatis yum.conf
yum.conf (5)         - Configuration file for yum(8).
[root@LeeMumu repodata]# man 5 yum.conf

“仓库指向” 定义及详细说明

“仓库指向” 是名词。

[repositoryID]                              # 各个仓库的 ID 不能一样 
name=Some name for this repository          # name 尽量见名知义
baseurl=url://path/to/repository/           #  =号左右不能留有空格,可以有多个URL
        url://server2/path/to/repository/
        url://server3/path/to/repository/
enabled={1|0}                               # 是否启用此仓库,默认启用(没有此条命令,代表启用)
gpgcheck={1|0}                              # 安装前是否检验文件的来源合法性和完整性
gpgkey=URL                                  # gpg的密钥文件访问路径
enablegroups={1|0}                          # 是否允许在此仓库使用组来批量管理程序包,默认是允许
failovermethod={roundrobin|priority}        # 默认为:roundrobin,意为随机挑选;priority 是自上而下选择
cost=                                       # 开销数值,默认为1000,开销值越大,优先级越高
[root@LeeMumu ~]# cd /etc/yum.repos.d/
[root@LeeMumu yum.repos.d]# ls
CentOS-Base.repo         # 定义了各个 yum 源仓库(里面的分类可结合 aliyun 上的 CentOS 镜像分类来进行理解)
CentOS-Debuginfo.repo    # 其它几个 .repo 文件也都是定义了 yum 源仓库,但是都是 enable=0(未启用状态) 
CentOS-Media.repo   
 CentOS-Vault.repo
CentOS-CR.repo    
CentOS-fasttrack.repo  
CentOS-Sources.repo  

# 在自定义 yum 源时,可以新创建 一个 .repo 文件,进行源仓库配置即可。
# 但是要注意,仓库名称不能重名,否则会报错
# repodate 目录就是在仓库指向配置中,YUM 仓库源指向的 url 路径
# 如果是同类 rpm 文件,可以定义在一个仓库里,使用多个 url 即可,在使用时会轮询进行访问
# 如果是不同类别的 rpm 文件,需要定义多个仓库,要注意仓库名定义
# rpm 文件类别,可以去 https://opsx.alibaba.com/mirror 等镜像站点上去查看
# repo 创建完后后,可以使用 # yum repolist 来进行查看

注意: repodate 目录就是在仓库指向配置中,YUM 仓库源指向的 url 路径。
如下:当定义阿里云上的镜像站点未 YUM 仓库的话,url 可写为如下:

https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/

在这里插入图片描述

查看本机yum源

# yum repolist  
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
repo id                   repo name                   status
base/7/x86_64             CentOS-7 - Base              10,019
extras/7/x86_64           CentOS-7 - Extras            419
updates/7/x86_64          CentOS-7 - Updates           2,124
repolist: 12,562

yum 命令的用法

语法格式:

# yum [options] [command] [package ...]

command 命令选项

command is one of:
  * install package1 [package2] [...]
  * update [package1] [package2] [...]
  * update-to [package1] [package2] [...]
  * check-update
  * upgrade [package1] [package2] [...]
  * upgrade-to [package1] [package2] [...]
  * distribution-synchronization [package1] [package2] [...]
  * remove | erase package1 [package2] [...]
  * list [...]
  * info [...]
  * provides | whatprovides feature1 [feature2] [...]
  * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
  * makecache
  * groupinstall group1 [group2] [...]
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值