Homebrew
是使用 Mac OS 的一件利器,Homebrew
可以安装 Apple
没有预装但非常…
一、Homebrew
的管理
1.brew
安装更新
Homebrew
是使用 Mac OS 的一件利器,Homebrew
可以安装 Apple
没有预装但非常需要的东西。Homebrew
会将软件包安装到独立目录,并将其文件软链接至/usr/local
安装指令:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew
管理:
$ brew --version
$ brew update # 更新 Homebrew 自己
$ brew update-reset # 更新重置
2.镜像源和代理
Homebrew 安装速度较慢,可能的问题是:
- 镜像: Homebrew默认软件源,因为地区或网络环境下速度较慢
- 代理
2.1 更换软件源
查看当前的镜像源
$ brew config # 查看 Homebrew 的镜像源配置
# 输出结果中可看到两个配置项: 表示 Homebrew 的 Git 远程仓库源链接,用于下载软件包和更新
# ORIGIN: https://github.com/Homebrew/brew.git
# Core tap origin: https://github.com/Homebrew/homebrew-core
尝试切换到其他镜像源,如清华大学、中科大等提供的镜像源。以下是切换镜像源的步骤:
I. 打开终端应用程序
II. 运行以下命令替换Homebrew
默认的镜像源
国内镜像地址:
- 科大: https://mirrors.ustc.edu.cn
- 阿里: https://mirrors.aliyun.com/homebrew
- 华为: https://mirrors.huaweicloud.com/homebrew
- 官方: https://github.com/Homebrew
Homebrew的配置分成三个目录,分别是:
brew(brew --repo)
: 主要配置目录,用于存储 Homebrew 的核心库和工具。- 默认位置:
/usr/local/Homebrew
(对于 macOS 系统)
- 默认位置:
homebrew/core(brew --repo homebrew/core)
: 存储 Homebrew Core 的软件包信息和公式(Formula),它包含了大量常见的开源软件包,如常用的命令行工具和实用程序- 默认位置:
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
- 默认位置:
homebrew/cask(brew --repo homebrew/cask)
: 存储 Homebrew Cask 的应用程序信息和 Cask 文件- 默认位置:
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask
- 默认位置:
# 通过git remote get-url origin来查看当前的源的URL
$ git -C "$(brew --repo)" remote get-url origin # 输出: https://github.com/Homebrew/brew.git
$ git -C "$(brew --repo homebrew/core)" remote get-url origin
$ git -C "$(brew --repo homebrew/cask)" remote get-url origin
# 1.通过以下三个命令修改Homebrew源配置为默认值,2.更新
$ git -C "$(brew --repo)" remote set-url origin 'https://mirrors.ustc.edu.cn/brew.git'
$ git -C "$(brew --repo homebrew/core)" remote set-url origin 'https://mirrors.ustc.edu.cn/homebrew-core.git'
# 可忽略: homebrew/cask 非必要可不替换
# $ git -C "$(brew --repo homebrew/cask)" remote set-url origin 'https://mirrors.ustc.edu.cn/homebrew-cask.git'
$ brew update # 更新
第二种更换镜像源的方式: 编辑
~/.bash_profile
文件
# bash 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 刷新源(执行改条时,执行时间可能比较长,请耐心等待)
$ brew update
2.2 代理服务器
如果在访问外部网络时需要代理服务器,可在终端中配置相应的代理设置,以加速 Homebrew 的安装。
# 使用 `export` 命令设置 `http_proxy` 和 `https_proxy` 环境变量,将代理服务器的地址和端口配置为合适的值
export http_proxy=http://proxy.example.com:8888
export https_proxy=http://proxy.example.com:8888
请将 proxy.example.com
替换为你实际的代理服务器地址和端口。
二、包的管理
1.包的更新
一味地更新Homebrew
所有安装包可能带来依赖的不支持,建议每个月定期查看一下,有选择性地更新。
# 列出已安装包
$ brew list
# 安装包
$ brew search <package name> # brew search go:查找go的所有版本
# 安装指定包及其版本:brew install $FORMULA / brew install go@1.17
$ brew install <package name[@version]>
$ brew uninstall <package name[@version]>
# 更新 brew update —— 适用于更新镜像源后
$ brew update # 更新 Homebrew 自身和 Homebrew Core(命令行软件包)的信息,而不会更新已安装的软件包
# 更新
$ brew outdated # 查看哪些安装包需要更新
$ brew upgrade # 更新”已安装的“所有包
$ brew upgrade $FORMULA # 更新”已安装的“指定包
# 删除
$ brew rm $FORMULA # 删除某个包
$ brew uninstall --force $FORMULA # 删除所有版本
# 清理旧版本
$ brew cleanup # 清理所有包的旧版本
$ brew cleanup $FORMULA # 清理指定包的旧版本
$ brew cleanup -n # 查看可清理的旧版本包,不执行实际操作
# 锁定不想更新的包
$ brew pin $FORMULA # 锁定某个包
$ brew unpin $FORMULA # 取消锁定
# 查看安装包的相关信息
$ brew info $FORMULA # 显示某个包的信息
$ brew info # 显示安装了包数量,文件数量,和总占用空间
$ brew deps --installed --tree # 查看已安装的包的依赖,树形显示
2.包(镜像源)异常
特别适用于切换镜像源后,或其他情况下突然拉取包失败
# 依次尝试以下命令
$ brew doctor
$ brew update-reset
$ brew update
三、常见问题
1.Version value must be a string
解决:
$ brew update-reset # 更新重置
$ brew update # 更新
2.切换镜像源报错: cannot change to '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask': No such file or directory
使用命令$ git -C "$(brew --repo homebrew/cask)" remote set-url origin 'https://mirrors.ustc.edu.cn/homebrew-cask.git'
报错,可能是因为 Homebrew Cask 未安装或安装位置不在预期的目录中导致的。
解决:
# 第1步: 检查目录
# 检查目录是否存在
$ ls /usr/local/Homebrew/Library/Taps/homebrew/ # 确保该命令后,存在'homebrew-cask'
# 'homebrew-cask'不存在,需重新添加
$ brew tap homebrew/cask
# 第2步: 更新
$ brew update
$ brew upgrade
参考
最后, 希望大家早日实现:成为编程高手的伟大梦想!
欢迎交流~
本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!