文章目录

Homebrew也称brewmacOS下基于命令行的最强大软件包管理工具,使用Ruby语言开发。类似于CentOSyum或者Ubuntuapt-getbrew能方便的管理软件的安装、更新、卸载,省去了手动编译或拖动安装的不便,更使得软件的管理更加集中化,解决了依赖包管理的烦恼。

资料

安装

Homebrew 依赖于Xcode Command Line Tools,所以需先执行:

1
xcode-select --install

在终端中执行:

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

检查是否已安装成功:

1
2
3
4
$ brew -v
 
Homebrew 1.6.1
Homebrew/homebrew-core (git revision 0aeb7; last commit 2018-04-12)

基本用法

基于brew安装的所有软件及其依赖均会安装到目录/usr/local/Cellar

  • Brew 帮助信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $ brew help
     
    Example usage:
    brew search [TEXT|/REGEX/]
    brew info [FORMULA...]
    brew install FORMULA...
    brew update
    brew upgrade [FORMULA...]
    brew uninstall FORMULA...
    brew list [FORMULA...]
     
    Troubleshooting:
    brew config
    brew doctor
    brew install --verbose --debug FORMULA
     
    Contributing:
    brew create [URL [--no-fetch]]
    brew edit [FORMULA...]
     
    Further help:
    brew commands
    brew help [COMMAND]
    man brew
    https://docs.brew.sh
  • 子命令帮助信息 brew help [COMMAND]brew [COMMAND] -h 用于查看具体某个子命令的帮助信息。

    例如,查看install命令的帮助详情:

     
    $ brew install -h
     
    brew install [--debug] [--env=(std|super)] [--ignore-dependencies|--only-dependencies] [--cc=compiler] [--build-from-source|--force-bottle] [--include-test] [--devel|--HEAD] [--keep-tmp] [--build-bottle] [--force] [--verbose] formula [options ...]:
    Install formula.
     
    formula is usually the name of the formula to install, but it can be specified
    in several different ways. See [SPECIFYING FORMULAE](#specifying-formulae).
     
    If --debug (or -d) is passed and brewing fails, open an interactive debugging
    session with access to IRB or a shell inside the temporary build directory.
     
    If --env=std is passed, use the standard build environment instead of superenv.
     
    If --env=super is passed, use superenv even if the formula specifies the
    standard build environment.
     
    If --ignore-dependencies is passed, skip installing any dependencies of
    any kind. If they are not already present, the formula will probably fail
    to install.
     
    If --only-dependencies is passed, install the dependencies with specified
    options but do not install the specified formula.
     
    If --cc=compiler is passed, attempt to compile using compiler.
    compiler should be the name of the compiler's executable, for instance
    gcc-4.2 for Apple's GCC 4.2, or gcc-4.9 for a Homebrew-provided GCC
    4.9.
     
    If --build-from-source (or -s) is passed, compile the specified formula from
    source even if a bottle is provided. Dependencies will still be installed
    from bottles if they are available.
     
    If HOMEBREW_BUILD_FROM_SOURCE is set, regardless of whether --build-from-source was
    passed, then both formula and the dependencies installed as part of this process
    are built from source even if bottles are available.
     
    If --force-bottle is passed, install from a bottle if it exists for the
    current or newest version of macOS, even if it would not normally be used
    for installation.
     
    If --include-test is passed, install testing dependencies. These are only
    needed by formulae maintainers to run brew test.
     
    If --devel is passed, and formula defines it, install the development version.
     
    If --HEAD is passed, and formula defines it, install the HEAD version,
    aka master, trunk, unstable.
     
    If --keep-tmp is passed, the temporary files created during installation
    are not deleted.
     
    If --build-bottle is passed, prepare the formula for eventual bottling
    during installation.
     
    If --force (or -f) is passed, install without checking for previously
    installed keg-only or non-migrated versions
     
    If --verbose (or -v) is passed, print the verification and postinstall steps.
     
    Installation options specific to formula may be appended to the command,
    and can be listed with brew options formula.
     
    brew install --interactive [--git] formula:
    If --interactive (or -i) is passed, download and patch formula, then
    open a shell. This allows the user to run ./configure --help and
    otherwise determine how to turn the software package into a Homebrew
    formula.
     
    If --git (or -g) is passed, Homebrew will create a Git repository, useful for
    creating patches to the software.
  • 搜索软件 brew search [TEXT|/REGEX/] 用于搜索软件,支持使用正则表达式进行复杂的搜索。

    例如,查询静态博客生成工具hugo

    1
    2
    3
    4
    5
    6
    $ brew search hugo
     
    ==> Searching local taps...
    hugo ✔
    ==> Searching taps on GitHub...
    ==> Searching blacklisted, migrated and deleted formulae...
  • 查看软件信息 brew info [FORMULA...] 用于查询软件的详细信息。

    例如,查看软件hugo的详细信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ brew info hugo
     
    hugo: stable 0.38.2 (bottled), HEAD
    Configurable static site generator
    https://gohugo.io/
    /usr/local/Cellar/hugo/0.38.2 (32 files, 28.0MB) *
    Poured from bottle on 2018-04-19 at 10:11:29
    From: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git/Formula/hugo.rb
    ==> Dependencies
    Build: dep ✔, go ✔
    ==> Options
    --HEAD
    Install HEAD version
    ==> Caveats
    Bash completion has been installed to:
    /usr/local/etc/bash_completion.d

    以上查询所得信息,包含了软件的最新可用版本,本机是否已安装,本机已安装的版本,安装的路径、大小、时间、Tap 源,所依赖的包,以及安装的可选项等详细信息。而这些信息可以帮助我们很方便快捷的了解如何对该软件进行相应的操作。

  • 安装软件包 brew install FORMULA... 用于安装一个或多个软件。

    例如,安装软件hugo

    1
    $ brew install hugo

    安装软件命令执行之前,brew 一般会先检查更新 Homebrew 自身及 Tap 源。

  • 更新软件包 brew upgrade [FORMULA...] 用于更新一个或多个软件,不指定软件名则更新所有软件。

  • 卸载软件包 brew uninstall FORMULA... 用于卸载指定的一个或多个软件

    brew uninstall --force FORMULA... 彻底卸载指定软件,包括旧版本

  • 已安装的软件列表 brew list 用于查询本机已安装的软件列表

  • 服务管理 brew services 用于方便的管理 brew 安装的软件软件,类似于 Linux 下的 service 命令。

    查看brew services帮助信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    $ brew services
     
    brew services command:
    Integrates Homebrew formulae with macOS' launchctl manager.
     
    [sudo] brew services list
    List all running services for the current user (or root)
     
    [sudo] brew services run formula|--all
    Run the service formula without starting at login (or boot).
     
    [sudo] brew services start formula|--all
    Start the service formula immediately and register it to launch at login (or boot).
     
    [sudo] brew services stop formula|--all
    Stop the service formula immediately and unregister it from launching at login (or boot).
     
    [sudo] brew services restart formula|--all
    Stop (if necessary) and start the service immediately and register it to launch at login (or boot).
     
    [sudo] brew services cleanup
    Remove all unused services.
     
    If sudo is passed, operate on /Library/LaunchDaemons (started at boot).
    Otherwise, operate on ~/Library/LaunchAgents (started at login).

    查询服务列表:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ brew services list
     
    Name Status User Plist
    redis stopped
    php56 started shocker /usr/local/opt/php56/homebrew.mxcl.php56.plist
    mongodb started shocker /usr/local/opt/mongodb/homebrew.mxcl.mongodb.plist
    memcached stopped
    httpd stopped
    nginx started shocker /usr/local/opt/nginx/homebrew.mxcl.nginx.plist
    etcd stopped
    mysql@5.6 started shocker /usr/local/opt/mysql@5.6/homebrew.mxcl.mysql@5.6.plist
  • 检查可更新的软件列表 brew outdated 可查询有更新版本的软件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    brew outdated
    wget (1.18) < 1.19.4_1
    redis (3.2.8) < 4.0.9
    brotli (1.0.3) < 1.0.4
    glib (2.56.0) < 2.56.1
    etcd (3.2.6) < 3.3.3
    tmux (2.3_2) < 2.6
    openssl@1.1 (1.1.0e) < 1.1.0h
    mysql@5.6 (5.6.34) < 5.6.39
    libzip (1.5.0) < 1.5.1
    bash-completion (1.3_1) < 1.3_3
  • 清理软件 brew cleanup -n 列出需要清理的内容 brew cleanup 清理所有的过时软件 brew cleanup [FORMULA] 清理指定软件的过时包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ brew cleanup
     
    Removing: /usr/local/Cellar/wget/1.18... (9 files, 1.6MB)
    Removing: /usr/local/Cellar/libxml2/2.9.4_2... (277 files, 9.8MB)
    Warning: Skipping redis: most recent version 4.0.9 not installed
    Warning: Skipping brotli: most recent version 1.0.4 not installed
    Removing: /usr/local/Cellar/icu4c/60.1... (249 files, 66.9MB)
    Removing: /usr/local/Cellar/icu4c/60.2... (249 files, 67MB)
    Warning: Skipping glib: most recent version 2.56.1 not installed
    Removing: /usr/local/Cellar/readline/7.0... (45 files, 2MB)
    Removing: /usr/local/Cellar/unixodbc/2.3.4... (39 files, 952.3KB)
    Removing: /Users/shocker/Library/Logs/Homebrew/go... (64B)
    Removing: /Users/shocker/Library/Logs/Homebrew/glide... (64B)
    ...
    ==> This operation has freed approximately 214.1MB of disk space.
  • 查看配置信息 brew config 用于查看 brew 所在环境及相关的配置情况

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $ brew config
     
    HOMEBREW_VERSION: 1.6.1
    ORIGIN: https://github.com/Homebrew/brew.git
    HEAD: 5a2817cb023ca5e929fe030d423002992bdabf1b
    Last commit: 7 days ago
    Core tap ORIGIN: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
    Core tap HEAD: 0aeb738f9f10ba3edd4edda9551fe11441bec458
    Core tap last commit: 11 days ago
    HOMEBREW_PREFIX: /usr/local
    HOMEBREW_BOTTLE_DOMAIN: https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles
    CPU: quad-core 64-bit haswell
    Homebrew Ruby: 2.3.3 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.3/bin/ruby
    Clang: 9.1 build 902
    Git: 2.15.1 => /Library/Developer/CommandLineTools/usr/bin/git
    Curl: 7.54.0 => /usr/bin/curl
    Java: 9.0.4
    macOS: 10.13.4-x86_64
    CLT: 9.3.0.0.1.1521514116
    Xcode: N/A
    XQuartz: N/A
  • 诊断问题 brew doctor 诊断当前 brew 存在哪些问题,并给出解决方案

  • 仓库管理 brew tap 已安装的仓库列表

    1
    2
    3
    4
    5
    6
    7
    8
    $ brew tap
     
    Updating Homebrew...
    caskroom/cask
    homebrew/core
    homebrew/services
    peckrob/php
    phinze/cask

    brew tap [--full] user/repo [URL] 添加仓库

    brew untap tap 移除仓库

源镜像

如果不用源镜像,那么就自带梯子或自建服务吧~

用 Homebrew 带飞你的 Mac的更多相关文章

  1. Homebrew简介及安装,Mac 包管理

    Homebrew简介及安装 Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两 ...

  2. 生信云实证Vol.12:王者带飞LeDock!开箱即用&一键定位分子库+全流程自动化,3.5小时完成20万分子对接

    LeDock是苏黎世大学Zhao HongTao在博士期间开发的一款分子对接软件,专为快速准确地将小分子灵活对接到蛋白质而设计.LeDock优于大部分商业软件,在Astex多样性集合上实现了大于90% ...

  3. 一文带你趟过mac搭建appium测试环境的遇到的坑

    做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...

  4. Homebrew 安装 Docker Desktop for Mac

    无意中发现Homebrew现在已经支持Docker Desktop for Mac了,因此特意把原来通过 https://docs.docker.com/docker-for-mac/install/ ...

  5. Alpha阶段项目复审(小小大佬带飞队)

    Alpha阶段项目复审 小组的名字 优点 缺点,bug报告(至少140字) 最终名次(无并列) 只会嘤嘤嘤队 题材比较新颖!游戏和记单词的结合  有浏览器不兼容问题 5 GG队 样式新颖,自动导入好评 ...

  6. Mac Pro 安装 Homebrew 软件包管理工具

    Linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案,Red hat有 yum,Ubuntu有 apt-get. Mac os 中没有类似的东东,不过有第三方库支持 ...

  7. mac下 home-brew安装及php,nginx环境安装及配置

    Homebrew官网 http://brew.sh/index_zh-cn.html Homebrew是神马 linux系统有个让人蛋疼的通病,软件包依赖,好在当前主流的两大发行版本都自带了解决方案, ...

  8. Mac OS X 程序员利器 – Homebrew安装与使用

    Mac OS X 程序员利器 – Homebrew安装与使用 Homebrew安装与使用 什么是Homebrew? Homebrew is the easiest and most flexible ...

  9. ★10 个实用技巧,让Finder带你飞~

    10 个实用技巧,让 Finder 带你飞 Finder 是 Mac 电脑的系统程序,有的功能类似 Windows 的资源管理器.它是我们打开 Mac 首先见到的「笑脸」,有了它,我们可以组织和使用 ...

随机推荐

  1. C# Note7:MVVM模式之数据绑定

    一.资源说明 (1)本文参考自: 一步步走进WPF的MVVM模式(二):数据绑定 WPF之数据绑定总结 二.正文  数据绑定 (Data Binding)是WPF最重要的特性之一,也是实现 MVVM( ...

  2. scala下划线

    作为函数的参数 一个匿名的函数传递给一个方法或者函数的时候,scala会尽量推断出参数类型.例如一个完整的匿名函数作为参数可以写为 scala> def compute(f: (Double)= ...

  3. centos7之vm11添加网卡

    需求 根据实际需求原来有一块网卡,现在需要新加一块网卡做集群. 1.在虚拟机添加一块网卡,开机后ip a查看是不是新加了一块网卡,下图是为了讲解,其实已经是做完的状态. 2.上满我们看到新加了一块网卡 ...

  4. Django--CRM-客户列表展示, 分页

    一 . 客户列表展示 为了插入数据方便,我们可以用django里面的admin插入数据 创建超级用户 把语言改成中文 结果: 列表展示 展示不同字段的方式: # 有需要的可以写 def__str__( ...

  5. ReCAPTCHA & 手势验证

    手势验证 recaptcha https://www.vaptcha.com/ https://www.vaptcha.com/document https://www.iviewui.com/com ...

  6. DNS_PROBE_FINISHED_NXDOMAIN & MacOS

    DNS_PROBE_FINISHED_NXDOMAIN 内网 DNS bug 8.8.8.8 8.8.4.4 # new inner Wi-Fi 10.1.3.10 10.1.3.13 Windows ...

  7. 老男孩python学习自修第二十四天【多进程】

    1. 体验多进程的运行速度 #!/usr/bin/env python # _*_ coding:UTF-8 _*_ from multiprocessing import Pool import t ...

  8. ERP系统的问题

    1.业务统计报表导出超时 2.库存统计相关接口查询容易导致慢查询,而且慢查询出现在主库上

  9. java JSP自定义标签

    来至: http://blog.csdn.net/jiangwei0910410003/article/details/23915373 http://blog.csdn.net/jiangwei09 ...

  10. linux 目录分类与文件操作

    / 虚拟根目录 一般不会在这里存储文件 /bin 二进制目录,存放需要GNU用户级的工具 /boot 启动目录,存放启动文件 /dev 设备目录,linux在这里创建设备节点 /etc 系统配置文件目 ...