Homebrew
Homebrew 是MAC下的包管理工具,可以当做debian下的apt-get,但要强大得多。它尽可能的利用系统自带库,大大缩短编译时间;冗余库极少,软件包的管理清晰灵活;安装脚本完全用ruby编写,极易自由定制1。
一键安装(一键脚本请参照官网,可能略有不同):
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装完毕后执行brew,输出如下,列出了 brew 的一些用法。
> brew
Example usage:
brew [info | home | options ] [FORMULA...]
brew install FORMULA...
brew uninstall FORMULA...
brew search [foo]
brew list [FORMULA...]
brew update
brew upgrade [FORMULA...]
brew pin/unpin [FORMULA...]
Troubleshooting:
brew doctor
brew install -vd FORMULA
brew [--env | config]
Brewing:
brew create [URL [--no-fetch]]
brew edit [FORMULA...]
https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md
Further help:
man brew
brew home
可以方便的搜索、查看和安装和卸载软件,如下图所示:
按照官方的介绍:
- Homebrew installs the stuff you need that Apple didn’t. 是MAC OS生态的重要补充,提供了大量在Linux下喜闻乐见的工具,比如curl, rename, wget等等;
- Homebrew installs packages to their own directory and then symlinks their files into /usr/local. 通过 brew 安装的软件可以和系统原软件完美兼容,互不影响;
- Homebrew won’t install files outside its prefix, and you can place a Homebrew installation wherever you like. homebrew 安装的文件默认全部在其指定的目录下,不会安装在其他位置。方便删除,可以自定义 homebrew 的安装位置;
- Trivially create your own Homebrew packages. 方便的创建个人包;
- It's all git and ruby underneath, so hack away with the knowledge that you can easily revert your modifications and merge upstream updates. 通过git管理所有安装配置,极易创建「私服」,把官方repo作为上游分支,可以自由定制。
# brew edit wget 可以直接编辑wget的安装配置
class Wget < Formula
homepage "https://www.gnu.org/software/wget/"
url "https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz"
sha256 "52126be8cf1bddd7536886e74c053ad7d0ed2aa89b4b630f76785bac21695fcd"
def install
system "./configure", "--prefix=#{prefix}"
system "make", "install"
end
end
我安装的软件有:
> brew list | paste -sd ',' -
aspell,autoconf,autojump,automake,bash,boris,brew-cask,ccat,cloog,cmake,composer,coreutils,cscope,ctags,editorconfig,emacs-clang-complete-async,emacs-mac,fontconfig,freetype,gcc,gdbm,gettext,git,gmp,gnu-sed,gnutls,go,htop-osx,icu4c,imagemagick,isl,jpeg,leptonica,libevent,libmpc,libpng,libtasn1,libtiff,libtool,llvm,mercurial,mobile-shell,mpfr,nettle,newt,nvm,openssl,pcre,php56,pkg-config,popt,protobuf,proxychains-ng,pyenv,pyqt,python,qt,rbenv,rbenv-gem-rehash,readline,rename,ruby-build,s-lang,sip,sqlite,tesseract,the_silver_searcher,tig,tree,unixodbc,vim,wget,xz,zeromq,zlib,zsh
PS: 当希望用 brew 安装的软件替代系统自带的软件(比如 git)时,确保$PATH中 brew 安装的位置在系统位置/usr/bin之前,可以运行brew doctor查看。安装软件完成之后请查看安装成功的一些后续指导。
PS: 执行brew cleanup清除安装产生的缓存文件。
PS: 使用 LaunchRocket 管理 brew 安装的 service。
Homebrew Cask
caskroom(brew cask) 构建于 Homebrew,继承了其优雅和便捷性,提供安装 OS X 应用和二进制软件的新方法。可以这么简单理解,brew安装的是命令行工具,比如curl, rename, wget;brew cask安装的是应用软件,比如google chrome, dropbox等。通过brew cask 安装软件,只需要简单的一条命令brew cask install google-chrome即可,再也不需要以前的打开网页、找到链接、下载软件、解压包、放到程序目录,删除安装文件,再来启动它这么复杂的步骤了。一键完成!2
虽然通过 Mac App Store 安装软件一样很简单,但是 Mac App Store 生态圈远不完善,审核流程过长,限制太多,维护成本过高让很多应用开发者被迫离开。大量软件缺失。3
安装brew install caskroom/cask/brew-cask,安装完毕后执行brew cask,可以看到 cask 提供的命令基本上继承自 brew:
> brew cask
brew-cask provides a friendly homebrew-style CLI workflow for the
administration of Mac applications distributed as binaries.
!!
!! no command verb:
!!
Commands:
alfred displays note about new built-in alfred support
audit verifies installability of Casks
cat dump raw source of the given Cask to the standard output
cleanup cleans up cached downloads and tracker symlinks
create creates the given Cask and opens it in an editor
doctor checks for configuration issues
edit edits the given Cask
fetch downloads Cask resources to local cache
home opens the homepage of the given Cask
info displays information about the given Cask
install installs the given Cask
list with no args, lists installed Casks; given installed Casks, lists staged files
search searches all known Casks
uninstall uninstalls the given Cask
update a synonym for 'brew update'
zap zaps all files associated with the given Cask
See also "man brew-cask"
通过 brew 安装的软件都在/opt/homebrew-cask/Caskroom下:
> cd /opt/homebrew-cask/Caskroom
/opt/homebrew-cask/Caskroom
> ls
aliwangwang goagentx macdown sourcetree virtualbox
anki google-chrome mplayerx thunder xiami
bettertouchtool haskell-platform p4merge tunnelblick xtrafinder
dropbox iterm2 qqinput typora zotero
evernote jumpcut rdm utopia
firefox lilypond skitch vagrant
同时在~/Applications下创建了链接文件:
> ll ~/Applications
lrwxr-xr-x 1 haidao staff 62B Jun 13 2014 AliWangwang.app -> /opt/homebrew-cask/Caskroom/aliwangwang/latest/AliWangwang.app
...
你也可以像 brew 那样自由定制,假如你觉得某个软件全球的用户都需要,就可以向官方 repo 发起 pull request。
cask :v1 => 'dropbox' do
version :latest
sha256 :no_check
url 'https://www.dropbox.com/download?plat=mac&full=1'
name 'Dropbox'
homepage 'https://www.dropbox.com/'
license :gratis
app 'Dropbox.app'
zap :delete => '~/.dropbox'
end
更有趣的是,你的重装系统将变得极为简单!把你的常用软件列表记下来,然后执行brew cask install software-1 software-2 ... software-n,然后睡一觉就一切搞定了~ 个人文档数据通过dropbox直接恢复~你的代码肯定都在 github~
PS: cask 重装软件,brew cask uninstall xxx && brew cask install xxx或brew cask install xxx --force。
PS: alfred 支持,brew cask alfred link。
PS: brew 和 brew cask 的下载都是断点续传的。