LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 07-01-21, 12:25 第 1 帖
wq1977
 
 
 
注册会员  
  注册日期: Dec 2003
  帖子: 211
  精华: 5
 

标题: 关于yum太慢了的解决方案


如果安装完fc6,想安装别的软件比如mplayer的时候,你可能会意识到,系统本身默认设置下yum的速度太慢了,安装任何哪怕很小的软件都是一个漫长的等待,有一些方法可以让你尽可能减少等待的时间,我总结了一下:

方法一: 更换yum仓库 教育网用户和网通用户有很不错的选择,使用tsinghua的源或者上海交大的源会极大的提高yum的下载速度。 缺点是: 象我这种使用深圳电信ADSL的用户,可能不能访问这些源。

方法二: 使用** 从**中国或者使用**猎手寻找可用的http**,在yum的配置文件中设置或者直接导出http_proxy环境变量都可以使得yum在下载软件的时候使用这个**。 缺点是:**的速度很不稳定,就象**本身一样。

方法三: 使用fastestmirror插件 这个插件可以自动对所有的境象进行排序,使选择那些速度快的镜像首先尝试下载,这个插件是fc6自带的软件仓库中。 缺点是: 有时候排序不准确,如果所有的镜像都慢,排序也无济于事。

方法四:使用axelget插件,这个插件将首先尝试使用axel加速下载过程,axel可以同时使用多个线程下载http和ftp协议的文件,速度可以达到成倍的提高。 这个插件是本人写的,还不太完善,可以从http://wininlinux.googlepages.com/下载,将文件http://wininlinux.googlepages.com/axelget.conf放入/etc/yum/pluginconf.d/目录,将http://wininlinux.googlepages.com/axelget.py放入/usr/lib/yum-plugins/就可以了,按你的需要修改axelget.conf文件中的值。 缺点是: 只能在下载软件包的时候使用axel,对于Primary.xml.gz则暂时没有办法。

方法五: 从http://wininlinux.googlepages.com/grabber.py下载这个文件替换你本地的/usr/lib/python2.4/site-packages/urlgrabber中的同名文件,并且按照你自己的情况修改其中urlgrab函数使用的命令(默认的是使用wget,你可能想改成axel). 这就是一个更彻底但是更不安全的解决方案了。 缺点是: 如果你的系统中有别的软件使用了urlgrabber这个python库,它们的行为也被改变了。 如果你知道自己在做什么,尝试一下总是没有坏处。 使用wget至少可以尽量避免可恶的checksum失败。

供参考。







__________________
我的邮箱:cnwesleywang@gmail.com
欢迎访问:http://www.wesleywang.cn/

此帖于 07-01-22 14:38 被 wq1977 编辑.
  wq1977 当前离线   回复时引用此帖
旧 07-01-21, 14:12 第 2 帖
skykingf
 
skykingf 的头像
 
 
注册会员  
  注册日期: Jul 2005
  帖子: 1,183
  精华: 0
 

方法4值得期待







__________________
笔记本 Debian linux 3.1 英文界面
Windows XP Pro English Edition
IBM T23 PIII1.2G 512M 80Gb

台式机 Fedora Core 6 英文界面
Windows Server 2003 Standard
Dell GX620 P IV 3.0G 512M 80Gb SATA

服务器 Fedora 8 英文界面
Windows XP En Oem
Dell GX270 P IV 2.8G 512M 80Gb SATA
  skykingf 当前离线   回复时引用此帖
旧 07-01-21, 15:04 第 3 帖
wq1977
 
 
 
注册会员  
  注册日期: Dec 2003
  帖子: 211
  精华: 5
 

网址都给了,不用期待了,直接试用吧。
  wq1977 当前离线   回复时引用此帖
旧 07-01-21, 15:08 第 4 帖
mrhaigui 帅哥
 
mrhaigui 的头像
 
 
注册会员  
  注册日期: Sep 2006
  帖子: 89
  精华: 0
 

我是教育网的
如何添加清华和上交大的源?
  mrhaigui 当前离线   回复时引用此帖
旧 07-01-21, 16:32 第 5 帖
siniticmob
 
siniticmob 的头像
 
 
注册会员  
  注册日期: Dec 2006
  我的住址: China
  帖子: 77
  精华: 0
 

其实有一个很简单的方法,就是借鉴livna的做法
把比较快的源以以下的方式放在baseurl的后面
而不要用mirrorlist让yum去搜索源

但是如果yum也可以使用多个线程下载的话就好了

代码:
baseurl= http://rpm.livna.org/fedora/$releasever/$basearch/ http://livna.cat.pdx.edu/fedora/$releasever/$basearch/ http://wftp.tu-chemnitz.de/pub/linux/livna/fedora/$releasever/$basearch/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/rpm.livna.org/fedora/$releasever/$basearch/ http://mirror.atrpms.net/livna/fedora/$releasever/$basearch/ ftp://mirrors.tummy.com/pub/rpm.livna.org/fedora/$releasever/$basearch/ #mirrorlist=http://rpm.livna.org/mirrorlist-6







__________________
Linux version 2.6.18-1.2798.fc6 (brewbuilder@hs20-bc2-3.build.redhat.com)
(gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Mon Oct 16 14:54:20 EDT 2006
Intel(R) Celeron(R) CPU 1.70GHz stepping 03
Detected 1699.266 MHz processor, 256MB Memory
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=16383/255/63, UDMA(100)
eth0: RealTek RTL8139 at 0xd081ef00, 00:00:00:00:00:00, IRQ 201
  siniticmob 当前离线   回复时引用此帖
旧 07-01-21, 18:05 第 6 帖
ildg
 
 
 
注册会员  
  注册日期: Dec 2006
  帖子: 575
  精华: 0
 

引用:
作者: wq1977
如果安装完fc6,想安装别的软件比如mplayer的时候,你可能会意识到,系统本身默认设置下yum的速度太慢了,安装任何哪怕很小的软件都是一个漫长的等待,有一些方法可以让你尽可能减少等待的时间,我总结了一下:

方法一: 更换yum仓库 教育网用户和网通用户有很不错的选择,使用tsinghua的源或者上海交大的源会极大的提高yum的下载速度。 缺点是: 象我这种使用深圳电信ADSL的用户,可能不能访问这些源。

方法二: 使用** 从**中国或者使用**猎手寻找可用的http**,在yum的配置文件中设置或者直接导出http_proxy环境变量都可以使得yum在下载软件的时候使用这个**。 缺点是:**的速度很不稳定,就象**本身一样。

方法三: 使用fastestmirror插件 这个插件可以自动对所有的境象进行排序,使选择那些速度快的镜像首先尝试下载,这个插件是fc6自带的软件仓库中。 缺点是: 有时候排序不准确,如果所有的镜像都慢,排序也无济于事。

方法四:使用axelget插件,这个插件将首先尝试使用axel加速下载过程,axel可以同时使用多个线程下载http和ftp协议的文件,速度可以达到成倍的提高。 这个插件是本人写的,还不太完善,可以从http://wininlinux.googlepages.com/下载,将文件http://wininlinux.googlepages.com/axelget.conf放入/etc/yum/pluginconf.d/目录,将http://wininlinux.googlepages.com/axelget.py放入/usr/lib/yum-plugins/就可以了,按你的需要修改axelget.conf文件中的值。 缺点是: 只能在下载软件包的时候使用axel,对于Primary.xml.gz则暂时没有办法。

供参考。
谢谢,我用你的第四种方法,
出现这样的错误:
sh: axel: command not found
我拷贝了你说的两个文件啊
  ildg 当前离线   回复时引用此帖
旧 07-01-21, 19:43 第 7 帖
grassofhust
 
 
 
注册会员  
  注册日期: Oct 2006
  帖子: 124
  精华: 0
 

引用:
作者: ildg
谢谢,我用你的第四种方法,
出现这样的错误:
sh: axel: command not found
我拷贝了你说的两个文件啊
应该是没装axel。
  grassofhust 当前离线   回复时引用此帖
旧 07-01-21, 19:59 第 8 帖
ildg
 
 
 
注册会员  
  注册日期: Dec 2006
  帖子: 575
  精华: 0
 

引用:
作者: grassofhust
应该是没装axel。
那请问axel要如何装?
3x
  ildg 当前离线   回复时引用此帖
旧 07-01-21, 20:04 第 9 帖
红烧鸟
 
红烧鸟 的头像
 
 
注册会员  
  注册日期: Apr 2006
  帖子: 423
  精华: 0
 

用yum下载axel???

此帖于 07-01-21 20:13 被 红烧鸟 编辑.
  红烧鸟 当前离线   回复时引用此帖
旧 07-01-21, 20:25 第 10 帖
ildg
 
 
 
注册会员  
  注册日期: Dec 2006
  帖子: 575
  精华: 0
 

引用:
作者: 红烧鸟
用yum下载axel???
我正愁找不到,被你编辑了。
我还是老老实实用yum吧,
它高兴yum多久就yum多久,
我做别的事情不管它。
台湾的光纤是不是还没修好?
咋那么慢呢?
  ildg 当前离线   回复时引用此帖
旧 07-01-21, 21:54 第 11 帖
wq1977
 
 
 
注册会员  
  注册日期: Dec 2003
  帖子: 211
  精华: 5
 

公社有axel的源代码,可能要辛苦自己编译一下,呵呵。

http://linuxfans.org/nuke/modules.ph...ninfo&did=1697
  wq1977 当前离线   回复时引用此帖
旧 07-01-21, 23:11 第 12 帖
izee 帅哥
 
 
 
注册会员  
  注册日期: Jan 2007
  我的住址: 四川成都
  帖子: 33
  精华: 0
 

yum install axel行不?
  izee 当前离线   回复时引用此帖
旧 07-01-22, 09:10 第 13 帖
wq1977
 
 
 
注册会员  
  注册日期: Dec 2003
  帖子: 211
  精华: 5
 

不行,axel不是标配
  wq1977 当前离线   回复时引用此帖
旧 07-01-22, 12:09 第 14 帖
红烧鸟
 
红烧鸟 的头像
 
 
注册会员  
  注册日期: Apr 2006
  帖子: 423
  精华: 0
 

已经编译并且安装测试,效果很好!
  红烧鸟 当前离线   回复时引用此帖
旧 07-01-22, 14:32 第 15 帖
wq1977
 
 
 
注册会员  
  注册日期: Dec 2003
  帖子: 211
  精华: 5
 

引用:
作者: 红烧鸟
已经编译并且安装测试,效果很好!
这是我看见最欣慰的一个回复。

不过,也许你还是不能满足,因为Primary.xml.gz和filelist.xml.gz有时候大小可以达到数M,但是使用那个插件还是不能解决,你可以尝试修改 /usr/lib/python2.4/site-packages/urlgrabber目录中的grabber.py,以便让所有的文件都使用wget或者axel下载,你只需要在这个文件的urlgrab函数中增加下面几行代码:

代码:
if filename is None: filename = os.path.basename( urllib.unquote(path) ) #new code start if not (os.path.splitext(filename)[1] in ('.hdr')): print "I want use wget or even axel to download,not you!" if urlparse.urlparse(url)[0] == "ftp": raise URLGrabError(2, _('Ftp can not, no proxy provide')) if os.system("wget %s -O %s" % (url,filename)) != 0: raise URLGrabError(2, _('System function return fail')) return filename #new code finish if scheme == 'file' and not opts.copy_local:
或者,参考我修改过的原帖中的网址下载我修改好的文件覆盖你的文件,或者你可以考虑先备份你原来的文件,并且按照你的需要更改其中的代码,至少,你可能想把过滤ftp地址的那一段去掉。
  wq1977 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [禁用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:29


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org