简明 homebrew

homebrew

介绍

包管理工具几乎已经成为现代操做系统或者开发平台不可或缺的工具软件,不管作开发,或是管理服务器,都免不了用到一些第三方依赖包。包管理工具的基本功能就是提供一个集中的平台,能够在这里找到大部分流行的组件,而不用费力的到每一个软件本身的主页去下载安装。只须要输入简单的命令,就能够直接安装,而且包管理工具还会帮助用户管理全部这些包的版本,以及它们之间的依赖关系。包管理工具可让安装和更新程序变得更方便,目前在 MacOS 系统中受欢迎的包管理工具是 Homebrewgit

Homebrew(可直译为家酿啤酒) 是一款 MacOS 平台下的软件包管理工具,是一个开源的 Ruby 脚本,最先的建立者是马克斯·霍威尔(max howell)。该工具拥有安装、卸载、更新、查看、搜索等不少实用的功能。简单的一条指令,就能够实现包管理,而不用关心各类依赖和文件路径的状况,十分方便快捷github

优点

一、经过 Homebrew 下载安装的软件所有来自对应的软件官网,无需担忧下载源的安全问题面试

二、依存于系统既有的库,减小了空间占用和冗余算法

三、使用 Git 进行管理和更新mongodb

四、易于定制chrome

五、安装软件、软件包、软件都在一个目录/usr/local/Cellar下(cellar 是酒窖的意思),方便管理shell

安装

【xcode】xcode

若是没有安装 Xcode.app,可能须要先下载并安装 Xcode。但实际上并不须要,只须要安装完成 Xcode 命令行工具(Xcode Command Line Tools )便可安全

xcode-select —install

而后,执行下面代码就能够安装 Homebrew 了,这是一个 ruby 脚本,执行这个安装脚本就能够完成 Homebrew 全部安装操做ruby

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

将 /usr/local/bin 添加至 $PATH 环境变量中,要注意的是,.bash_profile中的内容会和其余shell共享,.bashrc中的内容仅仅bash会加载

echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

运行如下命令,确保 Homebrew 运行正常

brew doctor

使用

brew install <package_name> # 安装包
brew uninstall <package_name> # 卸载包
brew upgrade <package_name> # 更新包
brew search <package_name> # 搜索包
brew update # 更新全部安装过的包(包括homebrew)
brew list --versions # 列出全部安装过的包(包括版本号)

cask

Homebrew 是下载源码解压,而后 ./configure && make install ,同时会包含相关依赖库,并自动配置好各类环境变量

Homebrew Cask 是在 Homebrew 基础上的一个加强工具,用来安装 Mac 上的 GUI 程序应用包(.dmg/.pkg)。它是下载程序包解压到统一的目录中(/opt/homebrew-cask/Caskroom),省掉了本身去下载、解压、拖拽(安装)等步骤,而后再软链到~/Applications/目录下, 很是方便,并且还包含不少在 AppStore 里没有的经常使用软件

因此,Homebrew 通常管理第三方库和命令行工具,而 Homebrew Cask 能够看做是 APP Store 的补充

使用 brew search 命令搜索 google-chrome 时

$ brew search google-chrome
==> Casks
google-chrome
homebrew/cask-versions/google-chrome-beta
homebrew/cask-versions/google-chrome-canary
homebrew/cask-versions/google-chrome-dev

表示 google-chrome 只能用 brew cask 命令来安装

cask 的经常使用命令以下,cask 只能更新全部包,而不能更新单个包

brew cask install <package_name> # 安装程序包
brew cask uninstall <package_name> # 卸载程序包
brew cask list  # 列出安装过的程序包
brew cask upgrade # 更新全部安装过的包(包括homebrew)

两件逸事

1、算法面试失败

Homebrew 的创始人 Max Howell,在 2015 年初曾去 Google 面试,由于 “白板” 写算法题「翻转二叉树」失败,愤而发 twitter 讽刺

Google: 90% of our engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so fuck off.

2、移除 MongoDB

MongoDB 在 2018 年 10 月宣布将开源 License 从 GNU AGPLv3 切换到 Server Side Public License(SSPL),以此回应 AWS 等云厂商将 MongoDB 以服务的形式提供给用户而没有回馈社区的行为。SSPL 明确要求托管 MongoDB 实例的云厂商要么获取商业许可证要么向社区开放其服务源码。

可是开源社区对此彷佛有很多反对声音,许多人认为 SSPL 是具备针对性的,对特定类别的用户具备严重歧视性,这违反了开源的真谛,因此 Fedora 认定 SSPL 不是一个自由软件许可,红帽和 Debian 也宣布从发行版中删除 MongoDB

Homebrew core 列表目前已经将 MongoDB 移除,再也不为其提供支持

因此,使用 brew doctor 命令时,会有一个以下的 warning

Warning: Some installed formulae are not readable:
  mongodb: unknown version :mountain_lion
相关文章
相关标签/搜索