1 Homebrew 说明
Homebrew是一个免费的开源软件包管理系统,可以简化macOS上的软件安装。拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷,是Mac OS 不可或缺的套件管理器。
homebrew 官网如下:
除了brew 之外,还有一个brew cask,它是在brew 的基础上一个增强的工具,用来安装Mac上的Gui程序应用包(.dmg/.pkg), 比如qq、chrome等。它先下载解压到统一的目录中(/opt/homebrew-cask/Caskroom),省掉了自己去下载、解压、拖拽(安装)等步骤,同样,卸载相当容易与干净。然后再软链到~/Applications/目录下, 非常方便,而且还包含很多在 AppStore 里没有的常用软件。
注意brew 和 brew cask的区别:
- brew 是从下载源码解压然后./configure && make install,同时会包含相关依存库。并自动配置好各种环境变量,而且易于卸载。
- brew cask是已经编译好了的应用包(.dmg/.pkg). 仅仅是下载解压,放在统一的目录中(/opt/homebrew-cask/Caskroom), 省掉了自己去下载、解压、拖拽(安装)等蛋疼的步骤,同样,卸载相当容易与干净。
brew cask的官网是:
github地址是:
2. 安装Homebrew
官网提供的安装命令如下,在MAC 终端执行:
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
david@DaviddeMBP ~ % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 11 ms: Couldn't connect to server
david@DaviddeMBP ~ %
但是国内无法访问该网站,所有我们需要使用国内的镜像源来安装,虽然国内其他的大学,比如中科大,清华都提供了镜像源,但操作起来还是有些问题。所以直接使用gitee上的脚本来安装,最简单。
2.1 使用USTC的镜像源来安装brew:
git clone git://mirrors.ustc.edu.cn/homebrew-core.git//usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
david@DaviddeMBP ~ % git clone git://mirrors.ustc.edu.cn/homebrew-core.git//usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
david@DaviddeMBP ~ %
使用该方法还需要手工替换brew的源,比较麻烦,这里不在继续演示,我们这里推荐直接使用gitee方式直接安装,会自动安装brew 和 brew cask,并替换相关源。
2.2 安装gitee安装(推荐使用该方法):
命令如下:
/bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”
注意:经过测试,推荐使用阿里巴巴下载源。
Last login: Wed Feb 8 22:00:17 on ttys000
david@DaviddeMacBook-Pro ~ % /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
开始执行Brew自动安装程序
[cunkai.wang@foxmail.com]
['2023-02-08 23:23:14']['13.2']
https://zhuanlan.zhihu.com/p/111014448
请选择一个下载brew本体的序号,例如中科大,输入1回车。
源有时候不稳定,如果git克隆报错重新运行脚本选择源。
1、中科大下载源
2、清华大学下载源
3、北京外国语大学下载源
4、腾讯下载源
5、阿里巴巴下载源
请输入序号: 1
你选择了中国科学技术大学brew本体下载源
!!!此脚本将要删除之前的brew(包括它下载的软件),请自行备份。
->是否现在开始执行脚本(N/Y) Y
--> 脚本开始执行
Mac os设置开机密码方法:
(设置开机密码:在左上角苹果图标->系统偏好设置->用户与群组->更改密码)
(如果提示This incident will be reported. 在用户与群组中查看是否管理员)
==> 通过命令删除之前的brew、创建一个新的Homebrew文件夹
请输入开机密码,输入过程不显示,输入完后回车
Password:
开始执行
-> 创建文件夹 /opt/homebrew
运行代码 ==> /usr/bin/sudo /bin/mkdir -p /opt/homebrew
此步骤成功
运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /opt/homebrew
运行代码 ==> /usr/bin/sudo /usr/sbin/chown david /opt/homebrew
运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew
git version 2.37.1 (Apple Git-137.1)
下载速度觉得慢可以ctrl+c或control+c重新运行脚本选择下载源
==> 从 https://mirrors.ustc.edu.cn/brew.git 克隆Homebrew基本文件
未发现Git代理(属于正常状态)
Cloning into '/opt/homebrew'...
remote: Enumerating objects: 233669, done.
remote: Total 233669 (delta 0), reused 0 (delta 0), pack-reused 233669
Receiving objects: 100% (233669/233669), 63.23 MiB | 73.58 MiB/s, done.
Resolving deltas: 100% (173742/173742), done.
此步骤成功
--创建Brew所需要的目录
运行代码 ==> /usr/bin/sudo /bin/chmod u+rwx /opt/homebrew/bin /opt/homebrew/bin/brew
运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /opt/homebrew/bin /opt/homebrew/bin/brew
运行代码 ==> /usr/bin/sudo /usr/sbin/chown david /opt/homebrew/bin /opt/homebrew/bin/brew
运行代码 ==> /usr/bin/sudo /bin/mkdir -p /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
运行代码 ==> /usr/bin/sudo /usr/sbin/chown david /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
运行代码 ==> /usr/bin/sudo /usr/sbin/chown -R david:admin /opt/homebrew
运行代码 ==> /usr/bin/sudo /bin/mkdir -p /Users/david/Library/Caches/Homebrew
运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /Users/david/Library/Caches/Homebrew
运行代码 ==> /usr/bin/sudo /usr/sbin/chown -R david /Users/david/Library/Caches/Homebrew
--依赖目录脚本运行完成
==> 创建brew的替身
==> 从 https://mirrors.ustc.edu.cn/homebrew-core.git 克隆Homebrew Core
此处如果显示Password表示需要再次输入开机密码,输入完后回车
Cloning into '/opt/homebrew/Library/Taps/homebrew/homebrew-core'...
remote: Enumerating objects: 1411503, done.
remote: Total 1411503 (delta 0), reused 0 (delta 0), pack-reused 1411503
Receiving objects: 100% (1411503/1411503), 639.05 MiB | 84.35 MiB/s, done.
Resolving deltas: 100% (996708/996708), done.
此步骤成功
==> 从 https://mirrors.ustc.edu.cn/homebrew-cask.git 克隆Homebrew Cask 图形化软件
此处如果显示Password表示需要再次输入开机密码,输入完后回车
Cloning into '/opt/homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 758133, done.
remote: Total 758133 (delta 0), reused 0 (delta 0), pack-reused 758133
Receiving objects: 100% (758133/758133), 379.81 MiB | 83.05 MiB/s, done.
Resolving deltas: 100% (545004/545004), done.
此步骤成功
==> 从 https://gitee.com/cunkai/homebrew-services.git 克隆Homebrew services 管理服务的启停
Cloning into '/opt/homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 2041, done.
remote: Counting objects: 100% (900/900), done.
remote: Compressing objects: 100% (447/447), done.
remote: Total 2041 (delta 450), reused 877 (delta 430), pack-reused 1141
Receiving objects: 100% (2041/2041), 555.72 KiB | 718.00 KiB/s, done.
Resolving deltas: 100% (934/934), done.
此步骤成功
==> 配置国内镜像源HOMEBREW BOTTLE
运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /Users/david/.zprofile
运行代码 ==> /usr/bin/sudo /usr/sbin/chown david /Users/david/.zprofile
运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /Users/david/.zprofile
Brew本体已经安装成功,接下来配置国内源。
请选择今后brew install的时候访问那个国内镜像,例如阿里巴巴,输入5回车。
1、中科大国内源
2、清华大学国内源
3、北京外国语大学国内源
4、腾讯国内源
5、阿里巴巴国内源
请输入序号: 1
你选择了中国科学技术大学国内源
环境变量写入->/Users/david/.zprofile
此步骤成功
运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /opt/homebrew
运行代码 ==> /usr/bin/sudo /usr/sbin/chown david /opt/homebrew
运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew
==> 安装完成,brew版本
Homebrew 3.6.21-24-g4b752f4-dirty
fatal: detected dubious ownership in repository at '/opt/homebrew/Library/Taps/homebrew/homebrew-core'
To add an exception for this directory, call:
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
Homebrew/homebrew-core (no Git repository)
fatal: detected dubious ownership in repository at '/opt/homebrew/Library/Taps/homebrew/homebrew-cask'
To add an exception for this directory, call:
git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
Homebrew/homebrew-cask (no Git repository)
Brew前期配置成功
电脑系统版本:13.2
All user-space services OK, nothing cleaned...
==> brew update-reset
==> Fetching /opt/homebrew...
==> Resetting /opt/homebrew...
branch 'master' set up to track 'origin/master'.
Reset branch 'master'
Your branch is up to date with 'origin/master'.
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-cask, skipping update and reset!
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-core, skipping update and reset!
Warning: No remote 'origin' in /opt/homebrew/Library/Taps/homebrew/homebrew-services, skipping update and reset!
Brew自动安装程序运行完成
国内地址已经配置完成
桌面的Old_Homebrew文件夹,大致看看没有你需要的可以删除。
初步介绍几个brew命令
本地软件库列表:brew ls
查找软件:brew search google(其中google替换为要查找的关键字)
查看brew版本:brew -v 更新brew版本:brew update
安装cask软件:brew install --cask firefox 把firefox换成你要安装的
欢迎右键点击下方地址-打开URL 来给点个赞
https://zhuanlan.zhihu.com/p/111014448
安装成功 但还需要重启终端 或者 运行 source /Users/david/.zprofile 否则可能无法使用
david@DaviddeMacBook-Pro ~ % source /Users/david/.zprofile
david@DaviddeMacBook-Pro ~ %
2.3 处理异常
安装之后,在运行brew 时,还有错误,需要先解决,错误如下:
david@DaviddeMBP ~ % brew install golang
==> Fetching go
==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/go-1.19.5.arm64_ventura.bottle.tar.gz
######################################################################## 100.0%
fatal: not in a git directory
Error: Command failed with exit 128: git
david@DaviddeMBP ~ %
这里报错主要因为homebrew-core、homebrew-cask 、homebrew-services目录被git认为不是一个安全的目录,需要手动添加。
这3个的具体路径在之前安装脚本有记录:
david@DaviddeMBP ~ % git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-cask
david@DaviddeMBP ~ % git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-core
david@DaviddeMBP ~ % git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-services
david@DaviddeMBP ~ %
添加之后,在运行就不会报错了。
3.Homebrew的使用示例
brew 常用命令如下:
- 查看Homebrew命令:brew help
- 安装任意包:brew install
,eg:brew install node - 卸载任意包:brew uninstall
,eg:brew uninstall git - 查询可用包:brew search
- 查询已安装包列表:brew list
- 查看任意包信息:brew info
- 更新Homebrew:brew update
- Homebrew帮助信息:brew -h
- 查看brew版本:brew -v
- 更新brew版本:brew update
- 整理重复语句:open ~/.zshrc -e、open ~/.bash_profile -e
david@DaviddeMBP ~ % brew help
Example usage:
brew search TEXT|/REGEX/
brew info [FORMULA|CASK...]
brew install FORMULA|CASK...
brew update
brew upgrade [FORMULA|CASK...]
brew uninstall FORMULA|CASK...
brew list [FORMULA|CASK...]
Troubleshooting:
brew config
brew doctor
brew install --verbose --debug FORMULA|CASK
Contributing:
brew create URL [--no-fetch]
brew edit [FORMULA|CASK...]
Further help:
brew commands
brew help [COMMAND]
man brew
https://docs.brew.sh
如下是安装go的示例:
david@DaviddeMBP ~ % brew search golang
==> Formulae
golang golang-migrate golangci-lint glslang
==> Casks
goland
david@DaviddeMBP ~ % brew install golang
==> Fetching go
==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/go-1.19.5.arm64_ventura.bottle.tar.gz
Already downloaded: /Users/david/Library/Caches/Homebrew/downloads/3023ec96373fc0fa9b79fe91486eba7ea6a4c0871d7caf884c1c804a99bf7858--go-1.19.5.arm64_ventura.bottle.tar.gz
==> Pouring go-1.19.5.arm64_ventura.bottle.tar.gz
/opt/homebrew/Cellar/go/1.19.5: 12,458 files, 629.5MB
==> Running `brew cleanup go`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
david@DaviddeMBP ~ %
david@DaviddeMBP ~ % brew list
==> Formulae
go
david@DaviddeMBP ~ %
来个go 示例:
david@DaviddeMBP ~ % pwd
/Users/david
david@DaviddeMBP ~ % cat cndba.go
package main
import "fmt"
func main() {
fmt.Println("Hello, CNDBA")
}
david@DaviddeMBP ~ % go run cndba.go
Hello, CNDBA
david@DaviddeMBP ~ %
版权声明:本文为博主原创文章,未经博主允许不得转载。