手机扫一扫访问本页内容

微信扫描点右上角"···"分享到好友或朋友圈

关闭
微信扫一扫可打开小程序

微信长按图片或搜“分享录”可打开小程序

关闭

彻底解决Homebrew各种顽固疑难杂症

Homebrew是macOS(或Linux)平台下的一款软件包管理工具,类似于RHEL/CentOS上的yum、Ubuntu上的apt-get,拥有搜索、安装、卸载、更新、查看等功能,通过brew相关指令就可以实现包管理,而不用关注各种依赖、文件路径的情况,非常方便快捷。

但是由于各种镜像仓库都是使用https://github.com/Homebrew组织下的repo源(包括brew、homebrew-core、homebrew-cask、homebrew-cask-fonts、homebrew-cask-versions、homebrew-command-not-found、homebrew-services、install)或者其他同样被关在门外的源,从而导致了各种问题,这个时候要么科学上网,要么使用国内替代源!

首先,需要确保系统中安装了 bash、git 和 curl,对于 macOS 用户需额外要求安装 Command Line Tools (CLT) for Xcode,在终端输入“xcode-select –install”来安装CLT for Xcode,或者等报缺什么再来安装什么。

接下来安装Homebrew,可以通过命令行安装,也可以直接到官网下载安装包通过界面安装,这里用命令行安装,官网提供的安装脚本是无法直接访问的!

XuMBP:~ xubingtao$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 1 ms: Couldn't connect to server

为了避免各种源问题最好先配一下源,这里使用清华大学开源软件镜像站的,建议将以下源配到环境变量中,可以通过“echo $SHELL”查看 shell 版本,会输出/bin/bash(对应~/.bash_profile)或/bin/zsh(对应~/.zshrc),修改后要source ~/.bash_profile或source ~/.zshrc。

# 查看 shell 版本
echo $SHELL
# 修改配置文件
vim ~/.bash_profile 或 vim ~/.zshrc

# 将以下清华源写入配置文件中
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_PIP_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple"

#重新加载环境变量
source ~/.bash_profile或source ~/.zshrc

可以用CunKai/HomebrewCN提供的以下一键安装包:

#安装脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
#卸载脚本:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

或者在终端运行清华大学开源软件镜像站提供的以下三条命令来安装 Homebrew / Linuxbrew。

# 从本镜像下载安装脚本并安装 Homebrew / Linuxbrew
git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash brew-install/install.sh
rm -rf brew-install

然后就可以使用Homebrew了。

安装完nginx,按提示使用“brew services start nginx”设置开机启动服务时却又报错了。

==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
fatal: unable to access 'https://github.com/Homebrew/homebrew-services/': Failed to connect to github.com port 443 after 75001 ms: Couldn't connect to server
Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-services /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services --origin=origin --template= --config core.fsmonitor=false` exited with 128.
Error: Failure while executing; `/usr/local/bin/brew tap homebrew/services` exited with 1.

这个错误通过关闭设置代理(git config –global –get https.proxy)、修改权限(sudo chown -R apple:staff *)、清除软件包(brew cleanup)、检查异常(brew doctor)并按提示处理等等都无法解决,所以不要这么干,特别是修改权限!

再看看日志其实就是Tapping homebrew/services时homebrew-services源没法连通!

Homebrew Tap 是 Homebrew 的扩展,让用户能添加第三方软件仓库,通过 Tap 能安装和管理 Homebrew 里没有的软件包,每个 Tap 就像独立仓库,提供更多额外的软件包供用户选择,使用格式如下。

tap [options] [user/repo] [URL]

这里只要将homebrew-services这个Tap改成清华源“brew tap –custom-remote –force-auto-update homebrew/services https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-services.git”即可解决问题。

若还报其他源问题可以使用以下的清华源代替,至此就基本解决Homebrew的各种顽固疑难杂症。

# 注:自 brew 4.0 起,大部分 Homebrew 用户无需设置 homebrew/core 和 homebrew/cask 镜像,只需设置 HOMEBREW_API_DOMAIN 即可。
# 如果需要使用 Homebrew 的开发命令 (如 `brew cat <formula>`),则仍然需要设置 homebrew/core 和 homebrew/cask 镜像。
# 请按需执行如下两行命令:
brew tap --custom-remote --force-auto-update homebrew/core https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
brew tap --custom-remote --force-auto-update homebrew/cask https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git

# 除 homebrew/core 和 homebrew/cask 仓库外的 tap 仓库仍然需要设置镜像
brew tap --custom-remote --force-auto-update homebrew/cask-fonts https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-fonts.git
brew tap --custom-remote --force-auto-update homebrew/cask-versions https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask-versions.git
brew tap --custom-remote --force-auto-update homebrew/command-not-found https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-command-not-found.git
brew tap --custom-remote --force-auto-update homebrew/services https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-services.git
brew update

自brew 4.0.0 (2023 年 2 月 16日) 起,HOMEBREW_INSTALL_FROM_API 会成为默认行为,无需设置。大部分用户无需再克隆 homebrew-core 仓库,故无需设置 HOMEBREW_CORE_GIT_REMOTE 环境变量;但若需要运行 brew 的开发命令或者 brew 安装在非官方支持的默认 prefix 位置,则仍需设置 HOMEBREW_CORE_GIT_REMOTE 环境变量。如果不想通过 API 安装,可以设置 HOMEBREW_NO_INSTALL_FROM_API=1。

自brew 4.0.22 (2023 年 6 月 12 日) 起,homebrew-cask-drivers 已被弃用,所有 cask 合并至 homebrew-cask 仓库。

更多相关内容可访问:清华大学开源软件镜像站Homebrew / Linuxbrew 镜像使用帮助Homebrew 官方安装文档


历史上的今天:

展开阅读全文


上一篇:

下一篇:

服务器又要到期了鼓励一下吧
您还可以访问本站的小程序、公众号等所有端,或者下载APP, 在小程序、APP上可以评论文章以及保存图片还有在线客服哦,如您有任何疑问或建议可向作者提出意见反馈
扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,看效果?
关注我的公众号为您分享各类有用信息
分享录多端跨平台系统