> Linux教程 > linux基础 >

YUM源的.repo文件

什么是repo文件?
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
我们以一份系统自带的repo文件做为实例来探讨(#号后面是我加的注释):

[fedora]      #方括号里面的是软件源的名称,将被yum取得并识别

name=Fedora $releasever - $basearch   #这里也定义了 软件 仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变 量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择 适合当前系统的软件包,以下同……
failovermethod=priority   #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择
exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#上面的一行baseurl第一个字符是'#'表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:
baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os

enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥

##以下的软件仓库基本上用不到,选项含义同上
[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-source-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

摘自http://gcell.yo2.cn/archives/632695 格物之致

 

以下 摘自 麦麦的不老阁 www.im321.com/blog/article.asp

在众多的Linux distribution中,由“Red Hat, Inc.”与开源社区合作发行的fedora,在Linux Desktop上的受欢迎程度是相当高的。fedora很好用,对硬件的支持相当度相当高,更关键的是有“Red Hat Inc.“的支持。但是,fedora fans最郁闷的事情莫过于源的问题了,在国内没有一个像样的镜像源,看着ubuntu fans 使用apt安装、更新的时候,速度是飞奔,而我们fedora fans使用yum的时候,看着蜗牛般下载速度,我们只有泪崩的份,相信YUM的速度问题,一直是fedora fans心中的痛吧!
      
       我也是一直苦于yum蜗牛般速度,所以这几天搜集了一些速度相对快的源,重新制作了repo文件,使得yum的速度得到最大改善。顺便再一次来讨论这个让人泪崩的yum问题(YUM=Yellow Dog Updater,Modified),嘿嘿~
        
       如果您要转摘此文章,请注明出处:YUM应用终极攻略-麦麦的不老阁
本文以fedora10发行版为例,如果使用的是低于10版本的,可能需要修改一些内容。
先以我系统中的yum.conf文件,说明一下大概的参数配置,很多文章都会说如何用YUM,但是很少见到说有如何配置yum.conf的。

 
[marco.chan@fedora ~]$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum     #yum下载的RPM包的缓存目录
keepcache=0         #缓存是否保存,1保存,0不保存。
debuglevel=2         #调试级别(0-10),默认为2(具体调试级别的应用,我也不了解)。
logfile=/var/log/yum.log     #yum的日志文件所在的位置
exactarch=1         #在更新的时候,是否允许更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1         #这是一个update的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1         #是否检查GPG(GNU Private Guard),一种密钥方式签名。
plugins=1         #是否允许使用插件,默认是0不允许,但是我们一般会用yum-fastestmirror这个插件。
installonly_limit=3     #允许保留多少个内核包。
exclude=selinux*     #屏蔽不想更新的RPM包,可用通配符,多个RPM包之间使用空格分离。
#   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

repo文件中的内容可以包含在yum.conf文件中,但是默认会放在/etc/yum.repos.d/这个目录下,方便编辑,也为了方便区分不同源的文件。

然后看一下我系统中的.repo:
 
[marco.chan@fedora ~]$ ls /etc/yum.repos.d/ -l
-rw-r--r-- 1 root root   962 2009-03-14 16:57 fedora-asia-release.repo
-rw-r--r-- 1 root root   738 2009-03-14 16:57 fedora-asia-update.repo
-rw-r--r-- 1 root root   153 2009-03-14 19:46 fedora-dvdiso.repo
-rw-r--r-- 1 root root   317 2009-03-15 13:10 fedora-redhat-release.repo
-rw-r--r-- 1 root root   317 2009-03-15 13:11 fedora-redhat-update.repo
-rw-r--r-- 1 root root   316 2009-03-15 20:21 fedora-second-depository-release.repo
-rw-r--r-- 1 root root   263 2009-03-14 23:10 fedora-second-depository-updates.repo
-rw-r--r-- 1 root root 1126 2009-01-15 23:50 jpackage17.repo
-rw-r--r-- 1 root root 1035 2007-06-06 01:45 planetccrma.repo
#以上9个是我自己添加的.repo和相对陌生的第三方源文件。以下是系统默认的以及rpmfusion的源。
-rw-r--r-- 1 root root 1963 2009-03-14 15:29 fedora-rawhide.repo
-rw-r--r-- 1 root root 1093 2009-03-14 23:43 fedora.repo
-rw-r--r-- 1 root root 1267 2009-03-15 14:55 fedora-updates.repo
-rw-r--r-- 1 root root 1181 2008-11-07 04:06 fedora-updates-testing.repo
-rw-r--r-- 1 root root 1022 2009-03-14 16:56 rpmfusion-free-rawhide.repo
-rw-r--r-- 1 root root 1079 2009-03-14 15:30 rpmfusion-free.repo
-rw-r--r-- 1 root root 1134 2009-03-14 15:30 rpmfusion-free-updates.repo
-rw-r--r-- 1 root root 1194 2008-11-03 21:15 rpmfusion-free-updates-testing.repo
-rw-r--r-- 1 root root 1067 2008-11-15 18:29 rpmfusion-nonfree-rawhide.repo
-rw-r--r-- 1 root root 1124 2009-03-14 15:30 rpmfusion-nonfree.repo
-rw-r--r-- 1 root root 1179 2009-03-14 15:30 rpmfusion-nonfree-updates.repo
-rw-r--r-- 1 root root 1239 2008-11-03 21:18 rpmfusion-nonfree-updates-testing.repo

yum加速,关于yum的加速无非就是选择一个快速的源,或者是多线程下载(yum本身是单线程):
方法一、安装yum-fastestmirror这个插件.
说明:这个插件的效果并非和描述的那样好“自动选择最快的源”。其实yum-fastestmirror使用简单的ping方式,以延时的大小来判断源主机是否是最快的源,实际上这方法并不可靠。
安装:
 
sudo yum -y install yum-fastestmirror

如果你仔细观察过yum的话,我们大陆用户基本会选择到台.湾的主机作为最快的源,而实际上根据我个人的经验,台湾的源一般都跟蜗牛似的。所以我选择了屏蔽了.tw的源,屏蔽的方式为:

sudo vi /etc/yum/pluginconf.d/fastestmirror.conf
添加这一句:exclude=.tw, .twaren.net



方法二、安装yum-axelget。
说明:yum是单线程下载的,而axel是一个多线程下载软件。yum-axelget在yum运行的时候,自动调用axel来多线程下载,从而达到加速的目的。
安装:使用rpm命令安装axel,yum-axelget。
 

方法三、安装yum-presto。
用 户只需要下载每一个软件的增量内容(用drpm打包而成),在本地计算机重新生成一个完整的软件包再安装。通常增量更新只有很小的下载量,因而即使很大量 的内容要更新,所耗费的时间必然比传统方法要少很多。不过presto系统还在测试之中,而且只有一个服务器提供presto更新,速度也不怎么样。目前 presto只提供Fedora 9、Fedora 10和Fedora Rawhide三个版本的更新。
 
sudo yum -y install yum-presto

 
Installation
In Fedora, run "yum install yum-presto". Then enable a presto repository listed below.
Presto Repositories
To use presto in Fedora, you need to have some presto repositories enabled.
Easy setup:
The easy way (if you're running F9 or F10 (i386, x86_64)) is to change the mirrorlist

For F9, in /etc/yum.repos.d/fedora-updates-newkey.repo change the mirrorlist to:
mirrorlist=http://presto-mirrors.anmar.eu.org/mirrorlist?repo=updates-released-f$releasever.newkey&arch=$basearch

For F10, in /etc/yum.repos.d/fedora-updates.repo change the mirrorlist to:
mirrorlist=http://presto-mirrors.anmar.eu.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
Hard setup:

If you prefer to set the baseurl directly, use the following:

Fedora Rawhide:
To use the presto repository in Fedora Rawhide, you need to change your baseurl in /etc/yum.repos.d/fedora-rawhide.repo to point to the one below.
i386: baseurl=http://lesloueizeh.com/devel/i386/development

Fedora 10:
To use the presto repository in Fedora 10, you need to change your baseurl in /etc/yum.repos.d/fedora-updates.repo to point to the one below.
i386: baseurl=http://lesloueizeh.com/f10/i386/updates
x86_64: baseurl=http://dl.anmar.eu.org/repos/f10/updates-x86_64
A big thank you to Angel Marin for creating and hosting the x86_64 deltarpms for F10!

Fedora 9:
To use the presto repository in Fedora 9, you need to change your baseurl in /etc/yum.repos.d/fedora-updates-newkey.repo to point to the one below.
i386: baseurl=http://lesloueizeh.com/f9/i386/updates.newkey
x86_64: baseurl=http://dl.anmar.eu.org/repos/f9/updates-x86_64.newkey
A big thank you to Angel Marin for creating and hosting the x86_64 deltarpms for F9!
Releases:
Fedora 9, 10 and Rawhide


方法三、挑选自己满意的源。
以附件形式放上来!
 



方法四、安装专门的第三方源。
对于一些国内的源,大都只适合教育网用户,因为我不是教育网用户,所以无法测试,我自己只用了上海交大自由软件(free software)资源镜像这一个。另外,大家期待163mirrors,除了fedoar ISO之外,并没有同步其他的RPM包。
1、Planetccrma
http://ccrma.stanford.edu/planetccrma/software/
安装:
http://ccrma.stanford.edu/planetccrma/software/installplanetnine.html
For Fedora 9:
rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/9/i386/planetccrma-repo-1.1-2.fc9.ccrma.noarch.rpm

For Fedora 10:
rpm -Uvh http://ccrma.stanford.edu/planetccrma/mirror/fedora/linux/planetccrma/10/i386/planetccrma-repo-1.1-2.fc10.ccrma.noarch.rpm

2、jpackage
http://www.jpackage.org/
下载.repo文件,保存到/etc/yum.repos.d/ 下。http://www.jpackage.org/jpackage17.repo

3、RPM Fusion
http://rpmfusion.org/
rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

4、ATrpms
http://atrpms.net/

5、rpm.livna.org(已经合并)
http://rpm.livna.org/

6、freshrpms(已经合并)
http://freshrpms.net

7、rpmfind(法国东部的一个城市)
http://www.rpmfind.net/
安装
ftp://rpmfind.net/pub/rpmfind/

8、RPM.pbone.net
http://rpm.pbone.net/
一个付费的yum repository。可以注册一个用户,免费试用14天,依照自己的需求配置不同的.repo文件。
比如:
 
This is experimental system. Use it on own risk.
Copy below section and put it into /etc/yum.repos.d/pbone.repo file.
[65i386]
name=PBONE Fedora 10 i386
baseurl=http://yum.pbone.net/65/i386/
gpgcheck=0
proxy=http://proxy.pbone.net:3127/
proxy_username=marco
proxy_password=123456789
[65noarch]
name=PBONE Fedora 10 noarch
baseurl=http://yum.pbone.net/65/noarch/
gpgcheck=0
proxy=http://proxy.pbone.net:3127/
proxy_username=marco
proxy_password=123456789



(责任编辑:IT)