Homebrew是使用 Mac OS 的一件利器,Homebrew可以安装 Apple没有预装但非常…


一、Homebrew的管理

1.brew安装更新

Homebrew官网

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默认的镜像源

国内镜像地址:

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

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

参考


最后, 希望大家早日实现:成为编程高手的伟大梦想!
欢迎交流~

微信公众号

本文版权归原作者曜灵所有!未经允许,严禁转载!对非法转载者, 原作者保留采用法律手段追究的权利!
若需转载,请联系微信公众号:连先生有猫病,可获取作者联系方式!