Homebrew常规使用教程

homebrew是osx下的一个包管理工具,可以很方便的管理各类包。官方给出的定义是

macOS缺失的软件包管理器
官方地址

安装

1、自动安装(推荐)

执行如下命令:

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

上边的命令行是两个命令,首先下载install文件,然后用系统的ruby工具安装。

尽量再bash或者zsh下安装,fish下会提示不识别'$'。

不需要使用超级权限(sudo),该文件会将HomeBrew安装至 usr/local 目录下。安装过程中会提示你絮语奥执行哪些动作。

==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
==> The Xcode Command Line Tools will be installed.

后边还会有一些提示。继续的话会提示输入密码,等待安装完成。

安装完成后输入 brew -v 即可显示是否安装成功:

Homebrew 2.1.9
Homebrew/homebrew-core (git revision 84988; last commit 2019-07-29)

2、手动安装

执行如下命令:

mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

避免以下两点:

目录内包含空格
不要安装在 /sw 或者 /opt/local 目录下
当然也可以手动下载安装脚本,然后修改 HOMEBREW_PREFIX 变量的值,改为自己的安装目录。


brew常用命令

1、安装卸载软件

  1. brew --version 或者 brew -v 显示brew版本信息
  2. brew install <formula> 安装指定软件
  3. brew uninstall <formula> 卸载指定软件
  4. brew list 显示所有的已安装的软件
  5. brew search text 搜索本地远程仓库的软件,已安装会显示绿色的勾
  6. brew search /text/ 使用正则表达式搜软件
  7. brew info <formula> 显示指定软件信息
  8. brew reinstall <formula> 重新安装指定软件,先卸载后安装
  9. brew install <formula> --build-from-source 源码安装指定软件,可以给定指定参数
  10. brew commands 列出所有可用命令

2、升级软件相关

  1. brew update 自动升级homebrew (从github下载最新版本)

  2. brew outdated 检测已经过时的软件

  3. brew upgrade 升级所有已过时的软件,即列出的以过时软件

  4. brew upgrade <formula> 升级指定的软件

  5. brew pin <formula> 禁止指定软件升级

  6. brew unpin <formula> 解锁禁止升级

  7. brew upgrade --all 升级所有的软件包,包括未清理干净的旧版本的包

  8. brew edit <formula> 编辑软件,不会的情况下慎用

  9. brew tap 列出本地资源仓库,其中 homebrew 是默认仓库,其它都是第三方仓库

  10. brew tap <user/repo> 添加第三方仓库,命名的规则按照github来定的。使用

  11. brew untap <user/repo> 删除仓库

  12. brew deps <formula> 查看指定软件依赖于哪些软件

  13. brew uses <formula> 查看指定软件被哪些软件所依赖

3、清理相关

homebrew再升级软件时候不会清理相关的旧版本,在软件升级后我们可以使用如下命令清理

  1. brew cleanup -n 列出需要清理的内容
  2. brew cleanup <formula> 清理指定的软件过时包
  3. brew cleanup 清理所有的过时软件
  4. brew unistall <formula> 卸载指定软件
  5. brew unistall <fromula> --force 彻底卸载指定软件,包括旧版本

通过brew安装的文件会自动设置环境变量,所以不用担心命令行不能启动的问题。
比如安装好了gradle,即可运行 gradle -v

3、brew services管理后台服务

macOS使用 launchctl 命令加载开机自动运行的服务,brew service 可以简化 lauchctl 的操作。

以MySQL为例,使用launchctl启动:

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

如使用 brew service 可以简化为:

brew services start mysql
  • services 常用命令
brew services list  # 查看使用brew安装的服务列表

brew services run formula|--all  # 启动服务(仅启动不注册)

brew services start formula|--all  # 启动服务,并注册

brew services stop formula|--all   # 停止服务,并取消注册

brew services restart formula|--all  # 重启服务,并注册

brew services cleanup  # 清除已卸载应用的无用的配置
  • 配置文件目录
/Library/LaunchDaemons # 开机自启,需要sudo
~/Library/LaunchAgents # 用户登录后自启

以homebrew.mxcl.kafka.plist为例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>homebrew.mxcl.kafka</string>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/kafka/bin/kafka-server-start</string>
        <string>/usr/local/etc/kafka/server.properties</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/kafka/kafka_output.log</string>
</dict>
</plist>

在这里可以找到服务路径、启动参数、日志路径等

4、brew cask

Homebrew Cask 是 Homebrew 的扩展,借助它可以方便地在 macOS 上安装图形界面程序,即我们常用的各类应用。Homebrew 中文含义为自制、自酿酒,Cask 中文含义为桶、木桶,桶装酒是一种成品,也就是说每一个 homebrew cask 都可以直接使用的,比如 Atom 的 Cask 名称为 atom,那么就可以使用如下命令安装:

brew cask install atom

甚至也可以提交新的 Cask,比如假设有桌面客户端少数派,则用 brew cask create sspai 创建新的名称为 sspai 的 Cask,当然还要提供官网下载链接、官方主页、应用版本等信息,可以参照 官方教程,此处就不再细说。

安装 Homebrew Cask【以后新版不需要安装】
安装好brew 后,就可以执行命令 brew tap caskroom/cask 获取 Homebrew Cask。

注意:
Caskroom 的 Git 地址在 2018 年 5 月 25 日从 https://github.com/caskroom/homebrew-cask 迁移到了 https://github.com/Homebrew/homebrew-cask
所以,以后就不需要安装 Homebrew Cask

使用 Homebrew Cask

github使用:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

  1. brew cask install <formula> 安装指定图形界面软件
  2. brew cask uninstall <formula> 卸载软件
  3. brew cask uninstall --force <formula> 卸载软件,带参数
  4. brew cask search text 搜索软件
  5. brew cask list 列出所有通过cask安装的软件
  6. 其它可以参考:https://github.com/Homebrew/homebrew-cask/blob/master/USAGE.md

举例可安装的软件

# 安装chrome
brew cask install google-chrome

# 安装LaunchRocket
brew cask install launchrocket

Homebrew 更换为国内镜像

查看镜像地址

➜  ~ cd "$(brew --repo)" 
➜  Homebrew git:(stable) pwd
/usr/local/Homebrew
➜  Homebrew git:(stable) git remote -v
origin  https://github.com/Homebrew/brew (fetch)
origin  https://github.com/Homebrew/brew (push)

1、国内镜像安装

  • 获取官网脚本 并保存名为 brew_install;
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
  • 编辑brew_install文件,更改脚本中的资源链接,替换成 中国科学技术大学 的镜像
#BREW_REPO = "https://github.com/Homebrew/brew".freeze
BREW_REPO = "git://mirrors.ustc.edu.cn/brew.git".freeze
  • 安装brew
/usr/bin/ruby ./brew_install

2、Homebrew替换为中科大源

替换默认源

  • 替换brew.git
cd "$(brew --repo)"     # 其实就是定位至 /usr/local/Homebrew 目录下
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# git remote set-url origin git://mirrors.ustc.edu.cn/brew.git

# 重置为官方地址:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
  • 替换homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git

# 重置为官方地址:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core
  • 默认不安装cask 有需要的可以替换
    [Homebrew cask 软件仓库,提供 macOS 应用和大型二进制文件]
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-cask.git

# 重置为官方地址:
cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask
git remote set-url origin https://github.com/Homebrew/homebrew-cask
  • brew 更新
brew update
  • 检查是否有误
brew doctor

替换Homebrew Bottles源

  • bash用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
  • zsh用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

3、Homebrew替换为清华大学源

替换默认源

  • 替换现有上游
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

brew update
  • 复原
git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git

git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core

brew update

替换Homebrew Bottles源

  • bash用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
  • zsh用户
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

中科大源 和 清华大学源 其实在操作上是一样的,而本文档分了两部份整理,是为了区分 和更容易理解


常用软件安装

ccat 安装(查看工具)

brew install ccat

添加快捷方式

# 修改配置
vi ~/.zshrc
# 底部添加(覆盖掉之前的 cat功能。最好不要有换行)
alias cat=ccat

tig 安装(git插件)

brew install tig
# 在git项目下 输入
tig

# 进入tig界面,上下键选择提交的信息
# 按住 cmd 按键查看
# q 键退出

安装常用的开发包

brew install wget watch tmux cmake openssl imagemagick graphicsmagick gearman geoip readline autoconf multitail source-highlight autojump zsh-completions sshfs

安装常用的软件

brew cask install firefox google-chrome  thunder qq phpstorm sublime-text

brew cask install alfred appcleaner  sequel-pro sketch mplayerx

过时软件换3方库

brew install php@7.4
Error: php@7.4 has been disabled because it is a versioned formula!

该消息告诉您 PHP 7.4 已过时。您可以安装 PHP8

brew install php
或链接第 3 方存储库并从那里安装 7.4。

例如:
第三方安装:https://github.com/shivammathur/homebrew-php

brew tap shivammathur/php
brew install shivammathur/php/php@7.4
brew link php@7.4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345