签到成功

知道了

CNDBA社区CNDBA社区

Mac 安装 Homebrew 操作示例

2023-02-09 00:12 3326 0 原创 Linux
作者: dave

1 Homebrew 说明

Homebrew是一个免费的开源软件包管理系统,可以简化macOS上的软件安装。拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷,是Mac OS 不可或缺的套件管理器。http://www.cndba.cn/cndba/dave/article/116428

homebrew 官网如下:http://www.cndba.cn/cndba/dave/article/116428

https://brew.sh/index_zh-cn

除了brew 之外,还有一个brew cask,它是在brew 的基础上一个增强的工具,用来安装Mac上的Gui程序应用包(.dmg/.pkg), 比如qq、chrome等。它先下载解压到统一的目录中(/opt/homebrew-cask/Caskroom),省掉了自己去下载、解压、拖拽(安装)等步骤,同样,卸载相当容易与干净。然后再软链到~/Applications/目录下, 非常方便,而且还包含很多在 AppStore 里没有的常用软件。

注意brew 和 brew cask的区别:

  1. brew 是从下载源码解压然后./configure && make install,同时会包含相关依存库。并自动配置好各种环境变量,而且易于卸载。
  2. brew cask是已经编译好了的应用包(.dmg/.pkg). 仅仅是下载解压,放在统一的目录中(/opt/homebrew-cask/Caskroom), 省掉了自己去下载、解压、拖拽(安装)等蛋疼的步骤,同样,卸载相当容易与干净。

brew cask的官网是:http://www.cndba.cn/cndba/dave/article/116428

http://caskroom.io

github地址是:

https://github.com/caskroom/homebrew-cask

2. 安装Homebrew

官网提供的安装命令如下,在MAC 终端执行:http://www.cndba.cn/cndba/dave/article/116428http://www.cndba.cn/cndba/dave/article/116428

/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上的脚本来安装,最简单。http://www.cndba.cn/cndba/dave/article/116428http://www.cndba.cn/cndba/dave/article/116428

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,并替换相关源。http://www.cndba.cn/cndba/dave/article/116428

2.2 安装gitee安装(推荐使用该方法):

命令如下:

http://www.cndba.cn/cndba/dave/article/116428

/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 时,还有错误,需要先解决,错误如下:

http://www.cndba.cn/cndba/dave/article/116428

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 常用命令如下:

  1. 查看Homebrew命令:brew help
  2. 安装任意包:brew install ,eg:brew install node
  3. 卸载任意包:brew uninstall ,eg:brew uninstall git
  4. 查询可用包:brew search
  5. 查询已安装包列表:brew list
  6. 查看任意包信息:brew info
  7. 更新Homebrew:brew update
  8. Homebrew帮助信息:brew -h
  9. 查看brew版本:brew -v
  10. 更新brew版本:brew update
  11. 整理重复语句: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 ~ %

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2296
    原创
  • 3
    翻译
  • 582
    转载
  • 198
    评论
  • 访问:8500299次
  • 积分:4477
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ