LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 746|回复: 6

加速下载firefox源码包的脚本 (从半小时到一分半的飞跃 =.=)

[复制链接]
发表于 2010-12-18 18:50:37 | 显示全部楼层 |阅读模式
如今编译firefox-pgo不觉得编译速度慢, 倒是觉得下载速度慢的很囧...

不知道大家是怎么解决这个问题的?

我写了一个脚本, 利用aria2从不同的镜像一起多线程下载, 速度达到500K以上. 于是贴上来给大家分享:


  1. #!/bin/bash
  2. # For your crappy internet connection. Thanks to Gentoo mirrors; thanks to Google.

  3. pkgver=3.6.13
  4. filename=firefox-${pkgver}.source.tar.bz2
  5. hashsum='4b90775c0f29cb7e170a80894311d8c7a2cd794c50e2124b70d1b83011c45f63'
  6. hashtype=sha256

  7. uris=()
  8. mozilla_mirrors=(
  9.   'ftp://ftp.mozilla.org'
  10.   'http://releases.mozilla.org'
  11.   'http://releases.mozillaonline.com'
  12.   'http://pv-mirror01.mozilla.org'
  13.   'http://mozilla.cs.utah.edu'
  14.   'http://mozilla.isc.org'
  15.   'http://mozilla.ntua.gr'
  16.   'http://mozilla.sakura.ad.jp'
  17.   'http://mirror.its.uidaho.edu'
  18.   'http://www.mirrorservice.org/sites/ftp.mozilla.org'
  19.   'http://kyoto-mz-dl.sinet.ad.jp'
  20. )
  21. for m in "${mozilla_mirrors[@]}"; do
  22.   uris+=(${m%/}/pub/mozilla.org/firefox/releases/${pkgver}/source/${filename})
  23. done
  24. gentoo_mirrors=(
  25.   'http://gentoo.aditsu.net:8000'
  26.   'http://distfiles.gentoo.bg'
  27.   'http://gentoo.channelx.biz'
  28.   'http://mirror.mcs.anl.gov/pub/gentoo'
  29.   'http://gentoo.c3sl.ufpr.br'
  30.   'http://gentoo.cs.uni.edu'
  31.   'http://gentoo.arcticnetwork.ca'
  32.   'http://gentoo.mirrors.tera-byte.com'
  33.   'http://darkstar.ist.utl.pt/gentoo'
  34. )
  35. for m in "${gentoo_mirrors[@]}"; do
  36.   uris+=(${m%/}/distfiles/${filename})
  37. done

  38. metalink='<?xml version="1.0" encoding="utf-8"?>'
  39. metalink+=$'\n''<metalink version="3.0" xmlns="http://www.metalinker.org/">'
  40. metalink+=$'\n''<files>'

  41. metalink+=$'\n'"  <file name="${filename}">"
  42. metalink+=$'\n'"    <verification>"
  43. metalink+=$'\n'"      <hash type="${hashtype}">${hashsum}</hash>"
  44. metalink+=$'\n'"    </verification>"
  45. metalink+=$'\n'"    <resources>"
  46. for uri in "${uris[@]}"; do
  47.   urltype=${uri%%://*}
  48.   metalink+=$'\n'"      <url type="${urltype}">${uri}</url>"
  49. done
  50. metalink+=$'\n'"    </resources>"
  51. metalink+=$'\n'"  </file>"

  52. metalink+=$'\n''</files>'
  53. metalink+=$'\n''</metalink>'

  54. echo "${metalink}" | aria2c --metalink-file=- --metalink-servers=20 --min-split-size=1M
复制代码
发表于 2010-12-18 20:10:02 | 显示全部楼层
曾经ftp.mozilla.org与release.mozilla.org中下载同一个firefox
居然sha256sum不对.......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-18 20:49:43 | 显示全部楼层
囧, 大概你没下完整吧...

发现自己很傻... 官方的mirrors列表都没有去找...
http://www.mozilla.org/community/mirrors.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-18 22:25:01 | 显示全部楼层
OK. 现在是2.0版本~ 升级了mirrorlist ;-)
  1. #!/bin/bash
  2. pkgver=3.6.13
  3. filename=firefox-${pkgver}.source.tar.bz2
  4. hashsum='4b90775c0f29cb7e170a80894311d8c7a2cd794c50e2124b70d1b83011c45f63'
  5. hashtype=sha256
  6. uris=()
  7. mozilla_mirrors=(
  8.   "http://ftp.mozilla.org/pub/mozilla.org/"
  9.   "http://releases.mozilla.org/pub/mozilla.org/"
  10.   "http://3347-mozilla.voxcdn.com/pub/mozilla.org/"
  11.   "http://daimajin.mirror.aarnet.edu.au/pub/mozilla/"
  12.   "http://fastspeedtest.net/mirrors/mozilla.org/"
  13.   "http://ftp.ankara.edu.tr/mozilla/"
  14.   "http://ftp.cs.pu.edu.tw/pub/Mozilla/"
  15.   "http://ftp.cvut.cz/mozilla/"
  16.   "http://ftp.daum.net/mozilla/"
  17.   "http://ftp.df.lth.se/mozilla/"
  18.   "http://ftp.halifax.rwth-aachen.de/mozilla/"
  19.   "http://ftp.heanet.ie/mirrors/ftp.mozilla.org/pub/mozilla.org/"
  20.   "http://ftp.isu.edu.tw/pub/Mozilla/"
  21.   "http://ftp.jaist.ac.jp/pub/mozilla.org/"
  22.   "http://ftp.kaist.ac.kr/mozilla/"
  23.   "http://ftp.kddilabs.jp/Mozilla/"
  24.   "http://ftp.mirror.tw/pub/mozilla.org/"
  25.   "http://ftp.nsysu.edu.tw/Freeware/Mozilla/"
  26.   "http://ftp.ntu.edu.tw/pub/mozilla/"
  27.   "http://ftp.pwr.wroc.pl/pub/mozilla/"
  28.   "http://ftp.rz.tu-bs.de/pub/mirror/ftp.mozilla.org/"
  29.   "http://ftp.spnet.net/mozilla/"
  30.   "http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.mozilla.org/pub/"
  31.   "http://ftp.sunet.se/pub/www/clients/mozilla.org/"
  32.   "http://ftp.twaren.net/Unix/Mozilla/"
  33.   "http://ftp.uni-erlangen.de/pub/mozilla.org/"
  34.   "http://ftp.uni-kl.de/pub/mozilla/"
  35.   "http://ftp.uoi.gr/pub/mozilla.org/"
  36.   "http://ftp.up.pt/mozilla/"
  37.   "http://ftp.utexas.edu/mozilla/"
  38.   "http://ftp.yz.yamagata-u.ac.jp/pub/network/mozilla/"
  39.   "http://gd.tuwien.ac.at/infosys/browsers/mozilla.org/"
  40.   "http://godel.cs.bilgi.edu.tr/mozilla.org/"
  41.   "http://hyperion.zih.tu-dresden.de/moz/"
  42.   "http://jp-nii01.mozilla.org/pub/mozilla.org/"
  43.   "http://kyoto-mz-dl.sinet.ad.jp/pub/mozilla.org/"
  44.   "http://linorg.usp.br/mozilla/"
  45.   "http://mirror3.mirrors.tds.net/pub/mozilla.org/"
  46.   "http://mirror.7he.at/pub/mozilla/"
  47.   "http://mirror.atlanticmetro.net/mozilla/"
  48.   "http://mirror.calvin.edu/mozilla/"
  49.   "http://mirror.cc.vt.edu/pub/mozilla/"
  50.   "http://mirror.clarkson.edu/mozilla/"
  51.   "http://mirror.csclub.uwaterloo.ca/pub/mozilla.org/"
  52.   "http://mirror.fcaglp.unlp.edu.ar/mozilla/"
  53.   "http://mirror-fpt-telecom.fpt.net/mozilla/"
  54.   "http://mirror.ibcp.fr/pub/mozilla-current/"
  55.   "http://mirror.informatik.uni-mannheim.de/pub/mirrors/mozilla.org/"
  56.   "http://mirror.internode.on.net/pub/mozilla/"
  57.   "http://mirror.isoc.org.il/pub/mozilla/"
  58.   "http://mirror.its.uidaho.edu/pub/mozilla.org/"
  59.   "http://mirror.karneval.cz/pub/mozilla/"
  60.   "http://mirror.kr.freebsd.org/mozilla.org/"
  61.   "http://mirror.leaseweb.com/software/mozilla/"
  62.   "http://mirror.mcs.anl.gov/mozilla.org/"
  63.   "http://mirror.netcologne.de/mozilla.org/"
  64.   "http://mirror.nren.net.np/mozilla/"
  65.   "http://mirrors.adnettelecom.ro/mozilla/"
  66.   "http://mirrors.dotsrc.org/mozilla-current/"
  67.   "http://mirror.serverius.nl/mozilla/"
  68.   "http://mirrors.fe.up.pt/pub/mozilla/"
  69.   "http://mirrors.gigenet.com/mozilla/"
  70.   "http://mirrors.ircam.fr/pub/mozilla/"
  71.   "http://mirrors.isu.net.sa/pub/mozilla.org/"
  72.   "http://mirrors.linux.edu.lv/mozilla.org/"
  73.   "http://mirror.space.kz/mozilla/"
  74.   "http://mirrors.prometeus.net/mozilla-current/"
  75.   "http://mirrors.psu.ac.th/pub/mozilla-releases/"
  76.   "http://mirror.switch.ch/ftp/mirror/mozilla/"
  77.   "http://mirrors.xmission.com/mozilla.org/"
  78.   "http://mirrors.xservers.ro/mozilla/"
  79.   "http://mirrors.yocum.org/mozilla/"
  80.   "http://mirror.telcotech.com.kh/mozilla/"
  81.   "http://mirror.uoregon.edu/mozilla/releases/"
  82.   "http://mirror.us.as6453.net/mozilla/"
  83.   "http://mirror.waia.asn.au/pub/mozilla/"
  84.   "http://mirror.webmx.fr/pub/mozilla.org/"
  85.   "http://mirror.yellowfiber.net/mozilla/"
  86.   "http://mozilla.c3sl.ufpr.br/releases/"
  87.   "http://mozilla.cdn.leaseweb.com/"
  88.   "http://mozilla-crowdcache.3crowd.com/mozilla/"
  89.   "http://mozilla.cs.utah.edu/pub/mozilla.org/"
  90.   "http://mozilla-current.sit.kmutt.ac.th/"
  91.   "http://mozilla.de-mirror-server.de/"
  92.   "http://mozilla.desktopxp.com/"
  93.   "http://mozilla.fastbull.org/"
  94.   "http://mozilla.ftp.iij.ad.jp/pub/mozilla/mozilla.org/"
  95.   "http://mozilla.glo.zpanelmirror.co.uk/"
  96.   "http://mozilla.grn.cat/"
  97.   "http://mozilla.hns.net.in/"
  98.   "http://mozilla.idrepo.or.id/mozilla/"
  99.   "http://mozilla.igor.onlinedirect.bg/"
  100.   "http://mozilla.isc.org/pub/mozilla.org/"
  101.   "http://mozilla.kiwix.org/"
  102.   "http://mozilla.kn.vutbr.cz/"
  103.   "http://mozilla.lagis.at/"
  104.   "http://mozilla.linux.kiev.ua/"
  105.   "http://mozilla.localhost.net.ar/"
  106.   "http://mozilla-mirror.ankeena.com/pub/mozilla/"
  107.   "http://mozilla.mirror.easycolocate.nl/"
  108.   "http://mozilla.mirror.ihug.co.nz/"
  109.   "http://mozilla-mirror.naist.jp/"
  110.   "http://mozilla.mirror.pop-sc.rnp.br/mirror/mozilla.org/"
  111.   "http://mozilla.mirror.rafal.ca/"
  112.   "http://mozilla.mirrors.evolva.ro/"
  113.   "http://mozilla.mirrors.hoobly.com/"
  114.   "http://mozilla.mirrors.pair.com/"
  115.   "http://mozilla.mirrors.tds.net/pub/mozilla.org/"
  116.   "http://mozilla-mirror.xionox.info/"
  117.   "http://mozilla.mobiles5.com/"
  118.   "http://mozilla.mtk.nao.ac.jp/pub/mozilla.org/"
  119.   "http://mozilla.myamplifiers.com/"
  120.   "http://mozilla.netdotnet.com/"
  121.   "http://mozilla.ntua.gr/pub/mozilla.org/"
  122.   "http://mozilla.openap.net/"
  123.   "http://mozilla.parentingamerica.com/"
  124.   "http://mozilla.phphosts.org/"
  125.   "http://mozilla.raffsoftware.com/"
  126.   "http://mozilla.saix.net/"
  127.   "http://mozilla.sakura.ad.jp/pub/mozilla.org/"
  128.   "http://mozilla.saudi.net.sa/"
  129.   "http://mozilla.securedservers.com/"
  130.   "http://mozilla.skazkaforyou.com/"
  131.   "http://mozilla.snt.utwente.nl/"
  132.   "http://mozilla.sourcearchive.com/"
  133.   "http://mozilla.stu.edu.tw/"
  134.   "http://mozilla.tsukuba.wide.ad.jp/"
  135.   "http://mozilla.ulak.net.tr/"
  136.   "http://mozilla.unpad.ac.id/"
  137.   "http://mozilla.ussg.indiana.edu/pub/mozilla.org/"
  138.   "http://mozilla.watchdownload.com/"
  139.   "http://mozilla-west.superbhosting.net/"
  140.   "http://mozilla.wpro.lv/"
  141.   "http://mozilla.yongbok.net/"
  142.   "http://mozilla.ziply.com/"
  143.   "http://mozmirror01.true.nl/pub/mozilla.org/"
  144.   "http://napoleon.acc.umu.se/pub/mozilla.org/"
  145.   "http://openaccess.oldapps.com/mozilla.org/"
  146.   "http://oss.mmu.edu.my/pub/mozilla.org/"
  147.   "http://pj-mirror01.mozilla.org/pub/mozilla.org/"
  148.   "http://r1.3crowd.com/mozilla/"
  149.   "http://releases.mozillaonline.com/pub/mozilla.org/"
  150.   "http://rsync.labby.co.uk/mozilla.org/"
  151.   "http://tux.rainside.sk/mozilla/"
  152.   "http://ucho.ignum.cz/mozilla/"
  153.   "http://www.artfiles.org/mozilla.org/"
  154.   "http://www.mirrorservice.org/sites/releases.mozilla.org/pub/mozilla.org/"
  155.   "http://www.nic.funet.fi/pub/mirrors/ftp.mozilla.org/"
  156. )
  157. for m in "${mozilla_mirrors[@]}"; do
  158.   uris+=(${m%/}/firefox/releases/${pkgver}/source/${filename})
  159. done
  160. metalink='<?xml version="1.0" encoding="utf-8"?>'
  161. metalink+=$'\n''<metalink version="3.0" xmlns="http://www.metalinker.org/">'
  162. metalink+=$'\n''<files>'
  163. metalink+=$'\n'"  <file name="${filename}">"
  164. metalink+=$'\n'"    <verification>"
  165. metalink+=$'\n'"      <hash type="${hashtype}">${hashsum}</hash>"
  166. metalink+=$'\n'"    </verification>"
  167. metalink+=$'\n'"    <resources>"
  168. for uri in "${uris[@]}"; do
  169.   urltype=${uri%%://*}
  170.   metalink+=$'\n'"      <url type="${urltype}">${uri}</url>"
  171. done
  172. metalink+=$'\n'"    </resources>"
  173. metalink+=$'\n'"  </file>"
  174. metalink+=$'\n''</files>'
  175. metalink+=$'\n''</metalink>'
  176. echo "${metalink}" | aria2c --metalink-file=- --metalink-servers=80 --min-split-size=1M --lowest-speed-limit=10K
复制代码

速度快了许多:
  1. [#1 SIZE:28.1MiB/49.0MiB(57%) CN:39 SPD:972.7KiBs ETA:22s]
复制代码
回复 支持 反对

使用道具 举报

发表于 2010-12-18 23:30:17 | 显示全部楼层
待会儿试一下,好久没编译过firefox了
回复 支持 反对

使用道具 举报

发表于 2010-12-19 00:25:38 | 显示全部楼层
可以学习一下这种方式。。用来下载别的东西也不错。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-19 00:54:24 | 显示全部楼层
Post by crazyrain;2123413
可以学习一下这种方式。。用来下载别的东西也不错。


你得到了它! Presenting contagious:
https://bbs.archlinux.org/viewtopic.php?pid=867284#p867284
回复 支持 反对

使用道具 举报

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

本版积分规则

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