标签:serve priority uri 体系 ast 数据 降级 取值 top
yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。
yum,它是一款基于vpm安装包的安装包管理工具。
yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。
*yum = Yellow dog Updater, Modified(全名)
*主要功能是更方便的添加/删除/更新RPM包.
*它能自动解决包的倚赖性问题.
*它能便于管理大量系统的更新问题
Server端(yum仓库):依赖关系库、原文件、校验码文件
Client端:yum客户端程序、配置文件(连接Server路径信息)
*可以同时配置多个资源库(Repository)
*简洁的配置文件(两部分)(/etc/yum.conf,/etc/yum.repos.d 下的文件),(自建时,可写一起只有一个配置文件)。
*自动解决增加或删除rpm包时遇到的倚赖性问题
*使用方便
*保持与RPM数据库的一致性
yum的仓库repository。存储rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata)
设计缺陷:
某一次安装过程中半途终止,再次重启后将无法解决程序间的依赖关系
yum升级版dnf就是为了解决此类问题
repodata、yum.conf文件、目录yum.repos.d下的.repo文件
yum的主要文件是要有两类,1、仓库档案数据repodata,2、仓库源的配置文件为一类,可以合为一个文件。
repodata是仓库档案数据:
即使用yum命令安装时,必须包含两个因素:
1、所有依赖关系:各个软件的依赖关系必须知道,为此建立一张索引文件。(其中的依赖信息形成元数据)。
2、所有软件包:就是软件仓库,以及怎样处理软件包(尤其对于需要下载的方式)。
即:
1. repodata文件,即依赖关系集合文件。
2. yum 的配置文件
配置文件分为两部分:main 和repository。即怎样处理软件包,以及软件仓库位置,(自建时,可写一起只有一个配置文件)
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
进一步解释:
1、仓库档案文件:repodata。给自己下载的软件包,建立历来关系表,是利用命令createrepo:创建仓库repodata。
所有repodata都是相对的本地文件。相对于软件包所在位置的文件。
2、所有软件包所在的位置,即软件包仓库。(由于软件并不都在本地,所以用配置文件做区分指向。即可再分为两部分1、如何处理软件包,即main部分;2、所有软件包的位置,即repository 部分,即软件包位置或写明软件包位置的.repo配置文件)
其中2.1中分为yum.conf以及yum.repos.d下的各个仓库配置文件按,yum.repo.d分类
3、/etc/yum.conf:为所有yum仓库提供 公共 配置(主配置文件),即main部分。
/etc/yum.repos.d/*.repo:为仓库的指向提供配置(仓库配置文件),即repository 部分。
所以yum的配置一般有两种方式:
一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。
repo文件中的内容可以包含在yum.conf文件中,但是默认会放在/etc/yum.repos.d/这个目录下,方便编辑,也为了方便区分不同源的文件。
补充:创建关联关系: createrepo - Create repomd (xml-rpm-metadata) repository
命令:createrepo [options] <directory>
当完成后会生成repodata文件即可
yum 如何知道从哪里下载包?
起点是 /etc/yum.repos.d/ 目录,这个目录常常包含几个 repo 文件。这是 repo 的默认位置,但是可以在 YUM 配置文件(通常是 /etc/yum.conf)中指定其他位置。
典型的 repo 文件分为三个部分,一个用于一般的包,一个用于调试包,最后一个用于源代码包。常常可以从不同的位置(即镜像)获取发行版的包拷贝。
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
YUM的工作原理并不复杂,每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装
哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就可 以知道所有相关联的软件。所以YUM的基本工作流程如下:
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。
配置文件有两个:yum.conf文件、目录yum.repos.d下的.repo文件。
yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目录下,这是整个yum系统的重中之重,下面是找的一个配置:
[root@localhost ~]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
keepcache=0 #是否保留缓存内容,0:表示安装后删除软件包,1表示安装后保留软件包。
debuglevel=2 #Debug 信息输出等级,范围(0-10),命令执行过程中输出信息的详细程度。默认是2,只记录安装和删除记录?
logfile=/var/log/yum.log #yum的日志文件,默认是/var/log/yum.log。用户可以查询过去所做的更新。
exactarch=1 #1或0。在更新的时候,是否只允许安装、更新与你CPU不同体系的RPM包,比如已安装i386的包不可以用i686的包更新。
obsoletes=1 #1或0。这是一个update的参数,具体请man 8 yum,简单的说就是允许更新旧版的RPM包
gpgcheck=1 #1或0。是否检查GPG(GNU Private Guard),一种密钥方式签名。也可以在.repo文件中重新定义它
gpgkey=: #就是数位签章的公钥档所在位置!使用预设值即可
plugins=1 #是否允许使用插件,0不允许,1允许。可能会用yum-fastestmirror(根据ping响应,自动选择最快的源,不是很准)或者yum-security这些插件
installonly_limit=5 #允许保留多少个内核包,同时安装多少个程序包。
exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
retries=20 #retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试。
pkgpolicy=newest #包的策略。一共有两个选项,newest和last,作用是:你设置了多个repository,而同一软件在不同的repository中同时存在,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般选newest。
distroverpkg=centos-release #指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。
reposdir=/etc/yum.repos.d #repo文件位置,默认就是/etc/yum.repos.d
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum ## 追踪bug路径
# PUT YOUR REPOS HERE OR IN separate files named file.repo #把你的仓库源放在这里,或者在文件名为.repo的文件中。
# in /etc/yum.repos.d #repo文件位置,默认就是/etc/yum.repos.d
repo文件中的内容可以包含在yum.conf文件中(即合二为一),但是默认会放在/etc/yum.repos.d/这个目录下,方便编辑,也为了方便区分不同源的文件。
目录yum.repo.d下一般默认有几个文件:
CentOS-Media 这个是使用光盘挂载后调用的文件
CentOS-Base 这个是联网后基础的源,一般都用这个
CentOS-Vault 这个是最近新版本的加入的老版本的yum源配置
CentOS-Debuginfo debug包尤其和内核相关的更新和软件安装
repo格式的文件名称可以随便写
repo(仓库配置)文件
每个repo文件里面声明多个仓库,cat 某个文件
注意:
1.当同一个repo文件中同事出现相同的仓库id,yum会使用最后出现的仓库;不同repo文件中有相同的仓库id,yum会使用第一个(按repo文件的名称排序)repo文件中的仓库。
2.仓库地址与仓库id的关系:仓库id不同但仓库地址相同的话,这两个仓库yum都会使用,虽然仓库的内容 一样。
3.仓库地址的配置:
常用的远程仓库:http://mirrors.163.com/centos/ http://mirror.centos.org/
仓库地址的选择:目录下有repodata文件夹,就可以是仓库地址。例如:http://mirrors.163.com/centos/6/extras/x86_64/ 下图
4.repo文件详解
通过rpm -qa|grep redhat-release/centos-release可以查看系统信息
rpm -qa|grep centos-release
根据上图:$base=x86 $arch=64$basearch=x86_64
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
其中?$releasever?版本号,现在是centos-6对吧,所以$releasever换成6代替,而?$basearch?是体系结构,就i386吧。centos?会自动解析这些变量。
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号;
$arch: 平台;
$basearch:基础平台,同一系列最基本的架构,如32、64;
$YUM0-$YUM9 可做自定义
添加这些变量是自动获取我们自己系统的版本,如果你已知道版本,也可也指定获取指定版本号的软件。
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
baseurl=http://ftp.twaren.net/Linux/Fedora/linux/releases/29/Everything/x86_64/os/
http://ftp.twaren.net/Linux/Fedora/linux/updates/29/Everything/x86_64/
http://ftp.twaren.net/Linux/CentOS/6/updates/x86_64/
http://mirrors.163.com/centos/6/updates/x86_64/
http://ftp.twaren.net/Linux/CentOS/6.10/updates/x86_64/
每个网站目录都不一样,所以此方式并不一定通用,除非你熟悉这个网站目录结构。
连接repository服务器的配置文件。有了好的repository。所有服务器设置都应该遵循如下格式:
1. [serverid] #叫[repository_name]更合适,方括号里面的是软件源的名称,将被yum取得并识别 。
2. name=Some name for this server # 完整的仓库名称
3. baseurl=url://path/to/repository/
#serverid:是用于区别各个不同的repository,将被yum取得并识别,必须有一个独一无二的名称。 重复了 前面覆盖后面--还是反过来呢???用enabled 测试是后面覆盖前面。
#name:是对repository的描述,支持像$releasever $basearch这样的变量;通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是5,6等数字,$basearch 变量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择适合当前系统的软件包。
#baseurl:源的镜像服务器地址,它的格式是:
4. baseurl=url://server1/path/to/repository/ # yum仓库指明的访问路径
url://server2/path/to/repository/ #等号两边不能有空格,不能顶行写
url://server3/path/to/repository/
其中url支持的协议有 http:// ftp:// file://三种。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说不能像如下格式:
baseurl=url://server1/path/to/repository/
baseurl=url://server2/path/to/repository/
baseurl=url://server3/path/to/repository/
其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。
url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,比如:
failovermethod=[priority| roundrobin] #有两个选项
#默认值是哪一个各处不一致,有待进一步验证。priority表示从列出的baseurl和镜像列表中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择, 如果连接失败则使用下一个,依次循环。
exclude=compiz* *compiz* fusion-icon*
#exclude用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加。 exclude的含义和[main]部分相同,但只对此服务器起作用。
5. gpgcheck=[1|0] #是否检查完整性和来源合法性
#gpgcheck,代表是否是否进行gpg校验,1表示校验。如果没有这一项,默认是检查的。
表示这个repo中下载的rpm将进行gpg的校验,以确定rpm包的来源是有效和安全的。
6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥。我们先要到各个repository站点找到gpg key,一般都会放在首页的醒目位置,一些名字诸如 RPM-GPG-KEY.txt之类的纯文本文件,把它们下载,然后用rpm --import xxx.txt命令将它们导入,最好把发行版自带GPG-KEY也导入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方软件升级用的上。
7. enabled=[1 | 0]
#当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。
#通过 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 选项,或者通过 PackageKit 的"添加/删除软件"工具,也能够方便地启用和禁用指定的软件仓库
8.其他软件仓库:
1. [updates-released]
2. name=Fedora Core $releasever - $basearch - Released Updates
3. baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
4. http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
5. http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
6. gpgcheck=1
7. exclude=gaim
8. failovermethod=priority
其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作用。
几个变量
$releasever,发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
yum的命令形式一般是如下:yum [options] [command] [package ...]
其中[options]是参数,可选:选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
[command]:所要进行的操作,[package ...]:操作的对象。
概括了部分常用的命令包括:
自动搜索最快镜像插件:yum install yum-fastestmirror
安装yum图形窗口插件:yum install yumex
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1
yum update 全部更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1
yum downgrade package1 [package2] [...] 降级操作
yum info package1 显示安装包信息package1
yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1
yum list updates 列出所有可更新的软件包
yum list installed 列出所有已安装的软件包
yum repolist all 查看容器配置是否生效
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包
yum search package1 查找的软件包
yum remove package1 删除程序包package1
yum erase package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖情况
5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers
yum list extras 列出所有已安装但不在 Yum Repository 内的软件包
yum info extras 列出所有已安装但不在 Yum Repository 内的软件包信息
yum provides 列出软件包提供哪些文件
yum makecache 制作yum缓存
yum repolist all 查看容器配置是否生效
yum groupinstall Development tools Linux之一次性安装开发工具
yum deplist package1 [package2] [...] 查看指定包所依赖的功能
yum downgrade package1 [package2] [...] 降级操作
chkconfig yum on 每天定期执行系统更新
service yum start 每天定期执行系统更新
yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum localinstall rpmfile1 [rpmfile2] [...] 指定安装本地的*.rpm,但是会根据yum源现有依赖关系,解决此安装可能出现的依赖关系
查看yum事务历史:history
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
特别提醒:软件包的名字如果有空格,则必须用双引号选定,因为遇到空格会认为文件名结束了。
6、可以通过 yum grouplist 来查看可能批量安装哪些列表
因为yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
更多详细的选项和命令,当然只要在命令提示行下面:man yum。
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。
将yum源设置为163 yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
网易yum源:http://mirrors.163.com
国内还有其他不错的 yum 源,比如中科大和搜狐。
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
sohu 的 yum 源安装方法查看: http://mirrors.sohu.com/help/centos.html
yum加速,关于yum的加速无非就是选择一个快速的源,或者是多线程下载(yum本身是单线程):
方法一:安装yum-fastestmirror这个插件
说明:这个插件的效果并非和描述的那样好“自动选择最快的源”。其实yum-fastestmirror使用简单的ping方式,以延时的大小来判断源主机是否是最快的源,实际上这方法并不可靠。
方法二:安装yum-axelget
说明:yum是单线程下载的,而axel是一个多线程下载软件。yum-axelget在yum运行的时候,自动调用axel来多线程下载,从而达到加速的目的。
安装:使用rpm命令安装axel,yum-axelget。
方法三:安装yum-presto
用 户只需要下载每一个软件的增量内容(用drpm打包而成),在本地计算机重新生成一个完整的软件包再安装。通常增量更新只有很小的下载量,因而即使很大量 的内容要更新,所耗费的时间必然比传统方法要少很多。不过presto系统还在测试之中,而且只有一个服务器提供presto更新,速度也不怎么样。目前 presto只提供Fedora 9、Fedora 10和Fedora Rawhide三个版本的更新。
Centos/RHEL默认的yum软件仓库非常有限,仅仅限于发行版本那几张盘里面的常规包和一些软件包的更新,利用RpmForge,可以增加非常多的第三方rpm软件包。RpmForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库。
这个插件是用来设置yum在调用软件源时的顺序的。因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装yum-priorities这插件了。
# yum -y install yum-priorities
2、安装完yum-priorities插件后需要设置/etc/yum.repos.d/ 目录下的.repo相关文件(如CentOS-Base.repo),在这些文件中插入顺序指令:priority=N (N为1到99的正整数,数值越小越优先)
一般配置[base], [addons], [updates], [extras] 的priority=1,[CentOSplus], [contrib] 的priority=2,其他第三的软件源为:priority=N (推荐N>10)
以CentOS-Base.repo 为例:
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1
补充:
mirrorlist:就是一个表,是一个保存列表的网站(即网站上就是几个连接地址),centos?将从中选择一个链接来下载更新。
那些变量centos?会自动解析,不用人工,当然用确定的版本号代替也可以。?下面这个是update的具体就是如下:?
http://mirrorlist.centos.org/?release=6&arch=i386&repo=updates
baseurl:就是实际上的某个包库?
如http://mirror.centos.org/centos/6/os/i386/?
//这个路径下要有repodata/这个目录才可以把这个链接改到repos里。
用yum来升级软件,yum的操作大都须有超级用户的权限,当然可以用sudo。
yum update时yum会从服务器的header目录下载rpm的header,放在本地的缓存中,这可能会花费一定的时间。
header下载完毕,yum会判断是否有可更新的软件包,如果有,它会询问你的意见,是否更新,还是说 y吧,把系统始终up to date总是不错的,这时yum开始下载软件包并使用调用rpm安装,这可能要一定时间,取决于要更新软件的数目和网络状况,万一网络断了,也没关系,再进行一次就可以了。升级完毕,以后每天只要使用yum check-update检查一下有无跟新,如果有,就用yum update进行更新,时刻保持系统为最新,堵住一切发现的漏洞。
可以通过增加yum的超时时间,这样就不会总是因为超时而退出。
#vi /etc/yum.conf
#加上这么一句
timeout=120
如果系统启动的时候, yum出现Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的办法解决:
etc/init.d/yum-updatesd stop
#rm -f /var/run/yum.pid
主要原因就是yum在自动更新,只要关掉它就可以了
上面学习那么多了,现在自己创建一个yum仓库应该没问题了吧。
如果使用系统关盘搭建yum源,无需 createrepo去创建仓库元数据,因为在打包成iso文件前,就已经建好了
(1)挂载光盘至某目录,例如/mnt。将路径指向光盘挂载的目录就可以了。baseurl=file:///mnt
# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt
# vim /etc/yum.repos.d/test.repo
baseurl=file:///mnt
# yum clean all
# yum repolist
(1)安装工具:createrepo,用来创建repodata依赖关系索引,即生成仓库元数据。
通过rpm安装createrepo,然后使用命令createrepo -v /path/to/rpmDir 创建索引文件。当完成后会生成repodata即可。
SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
(2) 创建仓库。即用自己下载的rpm包搭建本地仓库,放在某目录下。
(3) 创建一个yum仓库的配置文件.repo。
(4) yum clean all #清除yum缓存信息
参考或引用文件:
centos yum远程rpm仓库更改与.repo配置:https://blog.csdn.net/kingxuexi/article/details/54987549
Linux yum配置文件详解:https://www.cnblogs.com/haoxiaoyu/p/3971363.html
关于搭建本地yum源(解释了repodata元数据):https://www.jianshu.com/p/5cb5af152e75
关于配置yum文件详解:http://blog.51cto.com/xuding/1728429
制作yum源的两种方法:http://www.cnblogs.com/shuaixf/archive/2011/11/30/2268496.html
YUM配置安装使用详解:http://blog.51cto.com/xuding/1728429
createrepo生成仓库元数据,搭建本地yum源:https://www.jianshu.com/p/5cb5af152e75
标签:serve priority uri 体系 ast 数据 降级 取值 top
原文地址:https://www.cnblogs.com/cucuad/p/10142319.html