是什么 ? | : | the missing package manager for macOS and GNU/Linux |
开发语言 | : | Ruby、Bash |
官方主页 | : | http://brew.sh |
源码仓库 | : | https://github.com/Homebrew/brew |
step1、将如下内容写入~/.bash_profile
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
step2、在Terminal中执行如下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
注意看输出的日志,可以帮助我们快速的诊断问题和使用它。
安装过程中如果发现您还没有安装过command-line-develop-tools,它会帮您安装。 因为它要用里面的git命令下载代码。
虽然各种GNU/Linux发行版都带有自己的包管理工具,诸如apt-get、yum、dnf、zypper、apk、pacman、Portage等等, 但HomeBrew
在以下情况下仍有用武之地:
HomeBrew
来搞定。HomeBrew
能够安装该包的最新版本。HomeBrew
不允许在root
用户下安装和使用。但是, 我们有时候仅仅是为了在root
用户下做一些测试工作,并不是在生产环境下使用。 很多操作系统的默认用户就是root
,docker容器的默认用户通常也是root
, 在root
用户下不能使用HomeBrew
就给我们想要快速测试一些东西带来了麻烦。
在生产环境中直接使用root
用户是不安全的做法。应该创建非root
用户,在非root
用户下进行操作。
如果您已经有非root
用户,请从step6
开始;
如果您还没有非root
用户,请从step1
开始。
step1、安装依赖工具:sudo、shadow-utils
step2、使用useradd创建一个新的登录用户
useradd -m -s /bin/bash fpliu
step3、使用passwd给该新用户设置一个密码
passwd fpliu
step4、给该新用户授予权限。在/etc/sudoers
中加入如下内容
fpliu ALL=(ALL) ALL
step5、使用su切换到该新用户
su - fpliu
step6、安装依赖bash、GNU CoreUtils、git、cURL、tar、gzip、file、gcc / GCC
step7、将如下内容写入~/.bashrc
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
step8、在Terminal中执行如下命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
step9、配置环境变量
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >> ~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >> ~/.profile
官方的HomeBrew Docker Image
:https://hub.docker.com/u/homebrew
示例1:零时创建一个新容器,并进入容器,执行完命令后退出该容器,并销毁该容器:
docker run -it --rm homebrew/brew:latest /bin/bash
示例2:零时创建一个新容器,执行完命令后退出该容器,并销毁该容器:
docker run -it --rm homebrew/brew:latest brew search curl
示例3:创建一个新容器,执行完命令后退出该容器,但不销毁该容器:
docker run -it --name homebrew homebrew/brew:latest /bin/bash
brew
命令自带了很多的子命令。但是HomeBrew
也允许第三方开发者为HomeBrew
添加功能, 并且添加的功能都能通过brew
子命令的形式让用户使用。
关于子命令如何扩展,请查看:http://docs.brew.sh/External-Commands.html
HomeBrew
的仓库分为3
类:
HomeBrew
的主程序,使用git
管理HomeBrew
的formula
索引仓库,使用git
管理HomeBrew
的主程序,源码仓库:https://github.com/Homebrew/brew.git
HomeBrew
的安装脚本实际上就是使用git下载此程序,然后做了一些其他的额外工作。
brew update命令也会更新此仓库。
brew --repo命令可以获得此仓库在本地的存放位置。
常用的brew.git
源的镜像:
清华大学开源镜像站 | https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git |
中科大开源镜像站 | https://mirrors.ustc.edu.cn/brew.git |
阿里开源镜像站 | https://mirrors.aliyun.com/homebrew/brew.git |
更多 |
替换方法:
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
brew update
如果您替换了这些源之后发现有问题,想要换回去,同样,执行此命令,只是把url换成原来的即可。
HomeBrew
官方维护着一些formula
索引仓库,也允许第三方创建formula
索引仓库。
HomeBrew
的formula
索引仓库只能存放在GitHub上, 并且项目地址必须是https://github.com/{user}/homebrew-{repo}
。
那么到底有哪些formula
索引仓库可以使用呢?您可以在浏览器中打开GitHub官网进行搜索带有homebrew-
字样的项目。
下面是一些常用的formula
索引仓库:
GitHub服务器不在中国,我们平时访问的时候也是勉强可以访问,速度是很慢的, 对于我们频繁使用HomeBrew
的人来说,那个速度是不能忍受的。
查看安装了哪些formula
索引仓库:
国内大多数开源镜像站只镜像了homebrew/core和homebrew/cask这两个formula
索引仓库。
HomeBrew Bottles
仓库是存放针对macOS的预先编译好的二进制包
的地方。
HomeBrew Bottles
仓库的源是:https://homebrew.bintray.com
HomeBrew Bottles
仓库的源在全球有很多的镜像服务器,常用的镜像:
清华大学开源镜像站 | https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles |
中科大开源镜像站 | https://mirrors.ustc.edu.cn/homebrew-bottles |
阿里开源镜像站 | https://mirrors.aliyun.com/homebrew/homebrew-bottles |
更多 |
临时替换方法:
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
永久替换方法:
如果您使用的Shell是bash, 并且您的操作系统是
macOS, 请执行如下的命令:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
如果您使用的Shell是bash, 并且您的操作系统不是
macOS, 请执行如下的命令:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bashrc
source ~/.bashrc
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
注意:因为HomeBrew
允许formula
存放在任何地方,也就是,不一定非得是在HomeBrew Bottles
上, 很多国外的软件是放在国外的Amazon S3
等云存储服务器上的,这时候, 我们替换镜像是解决不了问题的,只能通过其他办法解决。
LinuxBrew Bottles
仓库是存放针对GNU/Linux的预先编译好的二进制包
的地方。
LinuxBrew Bottles
仓库的源是:https://linuxbrew.bintray.com
国内似乎没有https://linuxbrew.bintray.com
的镜像,不过,https://linuxbrew.bintray.com
在国内有CDN
节点,所以,速度也是很快的。