Homebrew是使用ruby开发的Mac的软件包管理器.
这里就说明一下有关Taps(third-party-repositories)的知识
brew tap可以为brew的软件的 跟踪,更新,安装添加更多的的tap formulae
如果你在核心仓库没有找到你需要的软件,那么你就需要安装第三方的仓库去安装你需要的软件
tap命令的仓库源默认来至于Github,但是这个命令也不限制于这一个地方
brew tap 命令
brew tap没有参数会自动更新已经存在的tap并列出当前已经tapped的仓库


brew tap <user>/<repo>在本地对这个https://github.com/user/repo仓库上做了一个浅度的克隆,完成之后brew就可以在这个仓库包含的formulae上工作,好比就在Homebrew规范的仓库,你可使用brew install或者brew uninstall安装或者卸载这个仓库上的软件。当你执行brew update这个命令时,tap和formulae就会自定更新

brew tap <user>/<repo> URL在本地对这个URL仓库上做了一个浅度的克隆,和上面一个参数命令是不一样的,URL没有默认关联到Github,这个URL没有要求必须是HTTP协议,任何位置和任何协议而且Git也是能很好的处理的brew untap <user>/<repo> [<user>/<repo> <user>/<repo> ...]移除已经安装的tap.这个仓库被删除,brew就不在可用在这个仓库的formulae.可以同时删除几个仓库
仓库命名的规范
- 在
Github上,你的仓库名称必须是homebrew-something,为了使用一个参数的brew tap命令,homebrew-这个前缀不是可选的,是必须的。
对于两个参数的brew tap命令没有这个限制,但是必须给出明确的全部的URL地址 - 当你在命令行使用
brew tap时,你可以省略homebrew-这个前缀的
也就是说:brew tap username/foobar是作为长版本brew tap username/homebrew-foobar使用的一个简写.
brew可以自己添加homebrew-前缀的在需要的时候
重复名称安装包的处理
如果你想安装的一个安装包在你tap的一个仓库上,但是同时还出现在了homebrew/core上,这就意味着你必须明确指出tap的名称去安装它,否则就会默认安装homebrew/core上的包.
如果你想要是你安装的tap的优先顺序高于homebrew/core这个默认的仓库,你可以使用brew tap-pin username/repo去pin这个仓库.你可以使用brew-tap-unpin username/repo 恢复这个pin
当你使用brew install foo这个命令时,brew 将按照下面的顺序去查找哪个formula(tap)将被使用:
- pinned taps
- core formulae
- other taps
举个例子:
你想安装vim安装包,而且没有pinned某个仓库:
brew install vim # installs from homebrew/core
brew install username/repo/vim # installs from your custom repo
你想安装vim安装包,而且有pinned的仓库:
brew install vim # installs from your custom repo
brew install homebrew/core/vim # installs from homebrew/core
可以关注的Taps
homebrew/php:和php关联的formulaedenji/nginx:nginx modules的tapInstantClientTap/instantclient:Oracle客户端实例的tappetere/postgresql: 允许同时安装多个PostgreSQL版本的tapdunn/emacs:Emacs package的tapsidaf/pentest: 渗透测试工具的taposrf/simulation: 机器仿真的tap
Homebrew Tap详解

2874

被折叠的 条评论
为什么被折叠?



