Mac安装Homebrew并更换国内镜像源

Mac安装Homebrew并更换国内镜像源

什么是Homebrew?

Homebrew是mac的包管理工具,相当于Redhat Linux(Centos/RHEL/Fedora)的yum或者Debian Linux(Debian/Ubuntu)的apt-get,使用Homebrew能非常方便的下载需要的软件包,比如安装php,直接执行以下语句即可安装:

brew install php

注意:它虽然叫Homebrew,但实际使用的时候,命令是brew

怎样安装Homebrew

执行以下命令即可,如果很慢或中断,请开科学上网工具并开启全局模式:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

更换国内源

由于众所周知的原因,Homebrew安装软件非常慢,所以我们要把它的安装源更换成国内的源,这样才能用它愉快的安装软件。

要更换的源有三个:Homebrew本身的源、Formula源以及Bottles源。

更换Homebrew本身的源

Homebrew本身就是一个软件,是用ruby语言编写的,当执行brew update或者brew update xxx更新某个包时,brew会先更新它自己,所以如果这个源没有修改为国内源,它默认是在github上的,速度会比较慢,所以我们更换它的源,先进入Homebrew安装目录:

cd "$(brew --repo)"

然后修改git源为中科大的源:

git remote set-url origin git://mirrors.ustc.edu.cn/brew.git

以上两条命令也可以合并一起执行:

cd "$(brew --repo)" && git remote set-url origin git://mirrors.ustc.edu.cn/brew.git

修改后,可以使用以下使用查看刚刚的修改:

git remote get-url origin

当然也可以直接在配置文件里看:

vim .git/config

因为修改git源,其实就是修改当前目录下的.git/config文件里的配置,注意.git目录是隐藏目录,要用ls -la才能看到。

如果你要换回去,也是完全一样的命令,只不过地址不同而已,换回去的地址为

cd "$(brew --repo)" && git remote set-url origin https://github.com/Homebrew/brew.git

更换brew Formula的源

首先要说一下什么是Formula,查单词它是公式、配方的意思,其实它就是软件名,比如我安装一个nginx:

brew install nginx

在这里,nginx就是Formula,Formula的库默认也是在github上的,其实以前是和brew软件在同一个版本库中,后来分开了,叫做Homebrew-core,意思是官方维护的核心Formula,有官方就有民间,执行以下命令查看你目前有几个Formula库:

brew tap

这是我的:

Xnip2019-01-05_02-42-16.jpg

你还可以自己去网上或github搜索,有哪些好用的Formula库,你可以用brew tap 仓库名命令把它加入到你的Homebrew配置中,如:

#添加一个叫josegonzalez/php的Formula库
brew tap josegonzalez/php
#删除一个叫josegonzalez/php的Formula库
brew untap josegonzalez/php

当你用Homebrew搜索一个Formula的时候,Homebrew要在所有Formula库里都搜索一遍,把符合的显示出来,或者安装时候,它要先去Formula库中搜索有没有这个Formula,搜索到这个Formula后才能得到它的下载地址,因为Formula只是一个名称,并不是要安装的软件本身,由于Formula非常多,而且还有很多不同的库,而且库又在github上,所以会比较慢,所以我们需要把它更新为国内源(比较快的是中科大的,清华大学也有,听说没中科大的快),先进入homebrew-core的git目录:

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"

然后更新git源:

git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git

以上两条命令也可以合并成一条命令来执行:

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" && git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git

如果要换回默认的源,也是一样,只不过最后那个地址不同:

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" && git remote set-url origin https://github.com/Homebrew/homebrew-core.git

更换Bottles源

Homebrew安装的软件都在以下目录中:

/usr/local/Cellar/

其中Cellar意为酒窖、地窖,而Homebrew官方预先编译好的一个软件叫做一个Bottle(酒瓶子),Bottles就是很多酒瓶子(即软件),Homebrew把安装一个软件叫做把一个酒瓶子放到酒窖(地窖)里(不过其实是pour,即倒到酒窖里)。

上边的Formula仓库只是软件的名称及对应的Bottle下载地址或源码下载地址,因为软件非常多而且又有不同的库,所以软件名本身就得建一个库,而查到软件名之后,还要去下载这个软件名对应的软件,而Homebrew官方的软件(即Bottles)是放在bintray网站中的,同样是国外网站及众所周知的原因,如果直接从这里下载是非常慢的,所以我们还是要把它换成国内的源(这里还是用中科大的):

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile

source一下让它生效:

source ~/.bash_profile

注意:这次就不是设置git源了,这次是加在终端启动配置中,如果你更换了其他的shell,比如zsh,请自己更换名称即可,zsh的要这样添加(其实你自己用vim打开.zshrc添加也是一样的):

echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc

source一下让它生效:

source ~/.zshrc

如果要用回原来的,直接把添加的这句删掉,再source ~/.bash_profilesource ~/.zshrc即可(有时候你删掉再重新source也不行,我就试过,这时候重新开一个终端窗口就行)。

好了,到这里,三个源都更换完毕,赶紧试试你的Homebrew有没有飞起来吧。

brew的基本使用

使用命令

查询软件:

brew search 软件名

安装软件:

brew install 软件名

对于需要在后台运行的软件,大部分可用以下方式启动|停止|重启(它的原理是用launchctl+plist,用这种方式启动的软件重启电脑后也会自动启动):

brew services start|stop|restart 软件名

关于brew services的原理及详细用法,请查看:Mac服务管理 – launchd、launchctl、LaunchAgent、LaunchDaemon、brew services详解

卸载软件:

brew uninstall 软件名

查看软件的信息:

brew info 软件名

查看安装了哪些软件:

brew list 软件名

查看安装了哪些软件:

brew list 软件名

查看帮助:

brew help

使用客户端软件Cakebrew

其实最初是只有命令的,只是后来可能有人觉得用命令麻烦,就开发了Cakebrew
screenshot.jpeg

打赏

8
Leave a Reply

avatar
3 Comment threads
5 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
xiebrucePsycheMichael Recent comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of
Psyche
Guest
Psyche

还有为什么三个源都换了之后还是找不到hadoop这个软件呢…

Psyche
Guest
Psyche

您好!请问在换formula源的时候,出现No such remote ‘origin’是怎么回事呢?

Michael
Guest
Michael

文章挺好的,给了我不少的帮助,谢谢。

不过换回Homebrew源的command缺少origin,正确的应该是:
cd “$(brew –repo)” && git remote set-url origin https://github.com/Homebrew/brew.git

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

Mac安装Homebrew并更换国内镜像源