LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: wq1977

关于yum太慢了的解决方案

[复制链接]
发表于 2007-1-28 08:16:30 | 显示全部楼层
Post by wq1977
这是我看见最欣慰的一个回复。

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


  1.         if filename is None:
  2.             filename = os.path.basename( urllib.unquote(path) )

  3.         #new code start
  4.         if not (os.path.splitext(filename)[1] in ('.hdr')):
  5.             print "I want use wget or even axel to download,not you!"
  6.             if urlparse.urlparse(url)[0] == "ftp":
  7.                 raise URLGrabError(2,
  8.                           _('Ftp can not, no proxy provide'))
  9.             if os.system("wget %s -O %s" % (url,filename)) != 0:
  10.                 raise URLGrabError(2,
  11.                           _('System function return fail'))
  12.             return filename
  13.         #new code finish
  14.         
  15.         if scheme == 'file' and not opts.copy_local:
复制代码


或者,参考我修改过的原帖中的网址下载我修改好的文件覆盖你的文件,或者你可以考虑先备份你原来的文件,并且按照你的需要更改其中的代码,至少,你可能想把过滤ftp地址的那一段去掉。


建议楼住实验下....成功了好让我们这些小菜来分享?
回复 支持 反对

使用道具 举报

发表于 2007-1-28 11:17:53 | 显示全部楼层
太感谢了,方案3 4都试用了一下,还是方案4好用,速度马上就上来了,不知道以后能不能用上p2p技术,也可以减轻点服务器的压力
回复 支持 反对

使用道具 举报

发表于 2007-1-28 13:35:51 | 显示全部楼层
请问 能不能让wget也能像axel一样多线程 多server 下载呢?
回复 支持 反对

使用道具 举报

发表于 2007-1-28 13:49:43 | 显示全部楼层
多线程axel好快!感谢楼主。(我装了个axel的FC3的rpm包,也能用)

方法3和4能不能结合在一起用呢?有人试过了没?
回复 支持 反对

使用道具 举报

发表于 2007-1-31 20:14:22 | 显示全部楼层

更新下楼主的插件

楼主的插件有两个缺陷
1 如果下载中,手动停止了yum进程,下次下载的时候一律重新下载,之前下载过的包都浪费了
2 如果axel下载失败了,没有能够重新下载
上传我的附件,修改了上面两个缺陷。

另 ,axel支持多镜象下载,就好像迅雷一样,不过直接使用-S选项的话似乎不是很有用,应该再改下插件,结合fastestmirror来选择头几个速度快的镜像来一起下载速度可能会更好些。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2007-2-1 12:01:32 | 显示全部楼层
方法4怎么用啊?
我按照说明下载了那两个文件,并放到相应目录!
然后是yum update ,结果是这样,清高手帮我看看,哪里出错了!谢谢!
[root@localhost ~]# yum update
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in ?
    yummain.main(sys.argv[1:])
  File "/usr/share/yum-cli/yummain.py", line 80, in main
    base.getOptionsConfig(args)
  File "/usr/share/yum-cli/cli.py", line 203, in getOptionsConfig
    self.doPluginSetup(self.optparser)
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 173, in doPluginSetup
    optparser, types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 139, in __init__
    self._importplugins(types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 181, in _importplugins
    self._loadplugin(modulefile, types)
  File "/usr/lib/python2.4/site-packages/yum/plugins.py", line 197, in _loadplugin
    module = imp.load_module(modname, fp, pathname, description)
  File "/usr/lib/yum-plugins/axelget.py", line 1, in ?
    from yum.plugins import PluginYumExit, TYPE_CORE, TYPE_INTERACTIVE
ImportError: cannot import name TYPE_INTERACTIVE
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-1 14:35:29 | 显示全部楼层
sorry,那个插件是FC6的,在FC5上不能使用,你需要进行一些小小的改动,将其中的TYPE_INTERACTIVE去掉,将其中的2.3改成2.2

因为我是在FC6上做试验的,所以当时没有意识到这个问题。
回复 支持 反对

使用道具 举报

发表于 2007-2-5 16:29:30 | 显示全部楼层
做了一下yum update,中间有个文件是6k的,提示:
Package updates download size 6144 less than 10000,Skip plugin!
(1/165): gawk-3.1.5-14.fc 100% |=========================| 1.7 MB    00:38     
(2/165): mkinitrd-5.1.19. 100% |=========================| 438 kB    00:10     
(3/165): at-3.1.8-84.fc6. 100% |=========================|  55 kB    00:01     
(4/165): avahi-glib-0.6.1 100% |=========================|  14 kB    00:00     
(5/165): tcpdump-3.9.4-9. 100% |=========================| 444 kB    00:10     
(6/165): libvte-java-0.12 100% |=========================|  71 kB    00:01     
(7/165): gnome-python2-2. 100% |=========================| 126 kB    00:04     
(8/165): vnc-server-4.1.2 100% |=========================| 1.2 MB    00:23     
(9/165): gnome-python2-ca 100% |=========================|  24 kB    00:00     
(10/165): pam-0.99.6.2-3. 100% |=========================| 926 kB    00:26     
(11/165): pygobject2-2.12 100% |=========================|  98 kB    00:00     
(12/165): SDL-1.2.10-8.fc 100% |=========================| 233 kB    00:02     
(13/165): oprofile-gui-0. 100% |=========================|  83 kB    00:04     
(14/165): nscd-2.5-10.fc6 100% |=========================| 149 kB    00:05     
(15/165): libstdc++-devel 100% |=========================| 9.4 MB    02:55     

碰到小文件,axel-plugin skip后,后面跟着的较大的文件,不能切换回用axel下载了。
回复 支持 反对

使用道具 举报

发表于 2007-2-5 16:52:06 | 显示全部楼层
昨天本人按方法四安装yum后,更新速度飞快!145个文件很快就下在完毕了。真的很有效!

楼主真高手也!谢谢!
回复 支持 反对

使用道具 举报

发表于 2007-2-5 22:42:08 | 显示全部楼层
楼主的python是自学的吗~?  如果可以的话,请推荐点供学习的书~~~

我先谢了~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表