前言
这篇文章其实没有什么,核心就是利用多线程下载代替brew默认的单线程。我如何知道是单线程在下载? 使用命令: brew
install -vd mysql
,该命令是进入verbose
模式,终端输出:
由于 curl
[url] -o [distation]
注意看: /Library/Caches/Homebrew/ ,这里是临时存放的目录,如果之前也安装过其他的程序, 你 ls
-l /Library/Caches/Homebrew/
,应该会发现很多类似 tar.gz
文件存在该目录下面。
这里的特征就是:一旦某个文件已经存在,就不会再次下载。我这里利用的就是这个原理,提前帮它下载好。
选择你的下载加速器
至于其他的下载加速器,有很多:
-
axel - 我最喜欢的一个,轻量,本身可以通过
brew install axel
安装,默认使用3个线程下载。使用时:axel [url]
。 -
aria2 - 也是一个非常轻量的工具,本身可以通过
brew install aria2
安装,使用时:aria2c -x 8 [url]
,里面的8表示用多少个连接同时下载。 - wget - 没有研究过,感觉多线程的话,使用过于复杂,单线程下载的话,也是一个轻便的工具。
- gui tools - 各种下载工具:迅雷、Whatever else you like。
然后直接将下载的包,一定要重命名为 当前formula的下载名称(名称来自刚才的调试语句):mysql-5.5.28.mountainlion.bottle.tar.gz
,
直接复制/剪切到
/Library/Caches/Homebrew/mysql-5.5.28.mountainlion.bottle.tar.gz
然后再次运行安装命令:brew
install -vd mysql
, 可以看到输出提示:
Already downloaded: /Library/Caches/Homebrew/mysql-5.5.28.mountainlion.bottle.tar.gz
此时表明你这个已经下载完毕,可以会进入brew
install FORMULA
的下一步模式,解压,编译,安装等等,在这段时间内加快的就是你用多线程下载的时间,要是 碰上大的文件,就像这个Mysql的安装包一样,这种等待是很痛苦漫长的!
注意:brew的默认约定
如果你自己下载的文件,文件名得遵守他们的明明规范:拿nodejs举例说明: node-v0.8.15.tar.gz
,这个文件多了一个v,
因为brew应该是 production-version-tar.gz
命名。所以名字改成node-0.8.15.tar.gz
。再次运行brew
install FORMULA
脚本,就会继续编译安装了。
我不知道是否还有其他的方式,但目前我这种确实可以加快很多。
(Done)