centosyum的配置⽂件repo⽂件详解
版权声明:本⽂为 testcs_dn(微wx笑) 原创⽂章,⾮商⽤⾃由转载-保持署名-注明出处,谢谢。
什么是repo⽂件?
repo⽂件是Fedora中yum源(软件仓库)的配置⽂件,通常⼀个repo⽂件定义了⼀个或者多个软件仓库的细节内容,例如我们将从哪⾥下载需要安装或者升级的软件包,repo⽂件中的设置内容将被yum读取和应⽤!
YUM的⼯作原理并不复杂,每⼀个 RPM软件的头(header)⾥⾯都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进⾏分析,可以知道每个软件在安装之前需要额外安装 哪些基础软件。也就是说,在服务器上⾯先以分析⼯具将所有的RPM档案进⾏分析,然后将该分析纪录下来,只要在进⾏安装或升级时先查询该纪录的⽂件,就可 以知道所有相关联的软件。所以YUM的基本⼯作流程如下:
服务器端:在服务器上⾯存放了所有的RPM软件包,然后以相关的功能去分析每个RPM⽂件的依赖性关系,将这些数据记录成⽂件存放在服务器的某特定⽬录内。
客户端:如果需要安装某个软件时,先下载服务器上⾯记录的依赖性关系⽂件(可通过WWW或FTP⽅式),
通过对服务器端下载的纪录数据进⾏分析,然后取得所有相关的软件,⼀次全部下载下来进⾏安装。
vi /f
[main]
cachedir=/var/cache/yum/$basearch/$releasever
#cachedir:yum缓存的⽬录,yum在此存储下载的rpm包和,⼀般是/var/cache/yum/$basearch/$releasever。
keepcache=1
#keepcache:是否保留缓存内容,0:表⽰安装后删除软件包,1表⽰安装后保留软件包
debuglevel=2
#debuglevel:除错级别,0──10,默认是2 貌似只记录安装和删除记录
logfile=/var/log/yum.log
pkgpolicy=newest
#pkgpolicy: 包的策略。⼀共有两个选项,newest和last,这个作⽤是如果你设置了多个repository,⽽同⼀软件在不同的repository中同时存 在,yum应该安装哪⼀个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个 服务器上的软件安装。⼀般都是选newest。
distroverpkg=centos-release
#指定⼀个软件包,yum会根据这个包判断你的发⾏版本,默认是redhat-release,也可以是安装的任何针对⾃⼰发⾏版的rpm包。
tolerant=1
#tolerent,也有1和0两个选项,表⽰yum是否容忍命令⾏发⽣与软件包有关的错误,⽐如你要安装1,2,3三个包,⽽其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。
exactarch=1
#exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系⼀致的包,如果设为1,则如你安装了⼀个i386的rpm,则yum不会⽤1686的包来升级。
星际2剧情retries=20
#retries,⽹络连接发⽣错误后的重试次数,如果设为0,则会⽆限重试。
obsoletes=1
gpgcheck=1
#gpgchkeck= 有1和0两个选择,分别代表是否是否进⾏gpg校验,如果没有这⼀项,默认是检查的。
reposdir=/ #默认是 /pos.d/ 低下的 xx.repo后缀⽂件
鸣人vs大蛇丸多少集#默认都会被include 进来 也就是说 /pos.po ⽆论配置⽂件有多少个 每个⾥⾯有多少个[name] 最后其实都被整合到 ⼀个⾥⾯看就是了
重复的[name]后⾯的覆盖前⾯的
exclude=xxx
#exclude 排除某些软件在升级名单之外,可以⽤通配符,列表中各个项⽬要⽤空格隔开,这个对于安装了诸如美化包,中⽂补丁的朋友特别有⽤。keepcache=[1 or 0]
# 设置 keepcache=1,yum 在成功安装软件包之后保留缓存的头⽂件 (headers) 和软件包。默认值为
keepcache=0 不保存
reposdir=[包含 .repo ⽂件的⽬录的绝对路径]
珠海有哪些大学# 该选项⽤户指定 .repo ⽂件的绝对路径。.repo ⽂件包含软件仓库的信息 (作⽤与 /f ⽂件中的 [repository] ⽚段相同)。
第⼆部分:
vi /po.po
这个字段其实也可以在f⾥⾯直接配置
[serverid]
#其中serverid是⽤于区别各个不同的repository,必须有⼀个独⼀⽆⼆的名称。 重复了 前⾯覆盖后⾯--还是反过来呢⽤enabled 测试是后⾯覆盖前⾯name=Some name for this server
周公解梦 剪头发#name,是对repository的描述,⽀持像$releasever $basearch这样的变量; name=Fedora Core $releasever - $basearch - Released Updates baseurl=url://path/to/repository/
#baseurl是服务器设置中最重要的部分,只有设置正确,才能从上⾯获取软件。它的格式是:
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
#其中url⽀持的协议有 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这样的变量。
#mirrorlist=/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上⾯的这⼀⾏是指定⼀个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁⽤了,我们可以试试,将$releasever和$basearch替换成⾃⼰对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到⼀长串镜可⽤的镜像服务器地址列表。
url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,⽐如:
gpgcheck=1
exclude=gaim
#其中gpgcheck,exclude的含义和[main]部分相同,但只对此服务器起作⽤,
failovermethod=priority
#failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使⽤下⼀个,依次循环,priority则根据url的次序从第⼀个开始。如果不指明,默认是roundrobin。
enabled=[1 or 0]
#当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使⽤这个选项,可以启⽤或禁⽤软件仓库。
#通过 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 选项,或者通过 PackageKit 的"添加/删除软件"⼯具,也能够⽅便地启⽤和禁⽤指定的软件仓库
⼏个变量
$releasever,发⾏版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进⾏判断。
$arch,cpu体系,如i686,athlon等健康标准
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
对f设定完成,我们就可以好好体验yum带来的⽅便了。
还有⼀件事没有做。那就是导⼊每个reposity的GPG key,前⾯说过,yum可以使⽤gpg对包进⾏校验,确保下载包的完整性,所以我们先要到各个repository站点到gpg key,⼀般都会放在⾸页的醒⽬位置,⼀些名字诸如 之类的纯⽂本⽂件,把它们下载,然后⽤rpm --import xxx.t
xt命令将它们导⼊,最好把发⾏版⾃带GPG-KEY也导⼊,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官⽅软件升级⽤的上。维持婚姻
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论