前言

  更换Homebrew的更新源的教程,在网上数不胜数,然内容大多大同小异且述之不详,且未提及版本上的差异。故作此文,以正视听。 
  在阅读此文之前,你需要了解Homebrew和Git并安装了它们。并且对于Homebrew官方更新源的速度赶到不满且不打算利用其它手段解决(如VPN),或者看了其它文章感到不求甚解,那么此文对你而言是有价值的。

更新源的机制

  Homebrew的更新源由三部分组成:本体(brew.git)、核心(homebrew-core.git)以及二进制预编译包(homebrew-bottles)。 
  在很多教程中,只会提及到更换本体,而未涉及到核心与二进制预编译包的更换。这样实际上效果是不完全的(尽管这样也无法做到完全,毕竟有一些软件包的地址是不被收录的,只能从它们提供的链接处下载)。 
  从.git的后缀名可以看出,Homebrew的更新源是以Git仓库的形式存在的,这便是为什么需要用到Git的原因。也正是如此,使得可以对其进行克隆,成为新源。

更新源的选择

  默认官方的更新源都是存放在GitHub上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源,因为它们能够完整以上源组成的三个部分。并且在此感谢他们为大家提供的服务。 
  

替换更新源

# 替换brew.git:
$ cd "$(brew --repo)"
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 替换homebrew-core.git:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git# 替换homebrew-bottles:
# 中国科大:
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 清华大学:
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile# 应用生效:
$ brew update
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

  以上在中国科大和清华大学任选其一即可,在使用其他源的时候,最好先尝试访问其链接看看是否健在,并且因为历史原因,最初的brew.git是叫homebrew.git的,而现在部分更新源早已随官方更名,所以切记要验证。 
  并且没有严格规定必须三个组成部分必须是来自同一提供,可随性发挥。 
  且Homebrew在早期版本中更新源的是在/usr/local目录下的,而现在是在/usr/local/Homebrew,不过应该都是可以使用"$(brew --repo)"来自动指向目录的,所以无需理会。 
  如果你之前折腾过不少导致你的Homebrew有点问题,那么可以尝试使用如下方案:

# 诊断Homebrew的问题:
$ brew doctor# 重置brew.git设置:
$ cd "$(brew --repo)"
$ git fetch
$ git reset --hard origin/master# homebrew-core.git同理:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
$ git fetch
$ git reset --hard origin/master# 应用生效:
$ brew update
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

重置更新源

  所谓有进则有退,在某些时候也有换回官方源的需求。

# 重置brew.git:
$ cd "$(brew --repo)"
$ git remote set-url origin https://github.com/Homebrew/brew.git# 重置homebrew-core.git:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
$ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

  至于homebrew-bottles,本质上作为一个环境变量的存在,之前的命令也只是将其写入到/usr/.bash_profile中,并且只是在文件尾部添加一行。所以之前的命令不推荐重复执行,在未掌握相关命令技巧的前提下,我推荐直接去修改.bash_profile文件: 
  当然这里的主题是重置更新源,所以我们直接选择删除环境变量HOMEBREW_BOTTLE_DOMAIN,使其成为默认值即可。 
  当然,最后不要忘记$ brew update进行应用。

后记

  在完成更新源的更换后,我们可以使用$ brew upgrade将现有的软件进行更新至最新版本,这样便能很直接的看出速度上的变化了。最后不要忘记$ brew cleanup将旧有的软件安装包进行清理。

更换Homebrew的更新源相关推荐

  1. Ubuntu 18.04.2 LTS更换国内快速更新源的正确姿势

    前言:看见Ubuntu新出了18.04版本感觉不错,装一个玩玩,虽然有很多教程可以参考,但我也给出一个不是很一样的方案吧,尽量解释的详细一点. 为了下载更方便,速度更快,我们往往在使用Linux系列系 ...

  2. ubuntu 18.04更换为国内更新源

    ubuntu 18.04更换为国内更新源 在执行ubuntu安装开发环境命令sudo apt update, sudo apt install build-essential时,发现安装速度过慢,可以 ...

  3. 更换Ubuntu的更新源方式

    step 1.进入到root权限     $ sudo su step 2. 备份原来的更新源     $cp /etc/apt/sources.list /etc/apt/sources.list. ...

  4. 更换Homebrew为中科大源

    官网:https://brew.sh/index_zh-cn /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...

  5. Deepin更换镜像源,更换系统软件更新源方法完整整理用html书写。

    个人博客同文链接:http://www.987931.top/index.php/archives/4/ 首次安装Deepin使用一定要做的事,Deepin更换镜像源,换源教程. Deepin更换镜像 ...

  6. Homebrew 更换阿里云镜像源

    你可能有过这样糟糕的经历,当你满心欢喜的敲下 "brew install 应用名称",静静的等待安装结果的时候,Homebrew在 Updating Homebrew卡死了. Ho ...

  7. ubuntu 如何正确的更换更新源

    在ubuntu的更新中,每个版本都会对应相应的名字,反正就是动物的名字 所以在更换更新源的时候,得把对应版本的名字也得进行替换 看我标红的位置,这个也得跟着替换,才能进行相应版本的更新 清除PPA的方 ...

  8. linux ubunt 安装软件的前期准备——更新源的更换

    如果是高手,请翻到页面最下方,更换更新源的总结,直接操作即可 可能会优点啰嗦,但是认真看,一定能解决问题~~希望对大家有帮助~ 最近在熟悉linux环境,自己安装了一个ubuntu虚拟机. 很多朋友问 ...

  9. kali linux切换更新源_使用Xshell链接Linux、kali更换更新源及kali安装软件

    一.Xshell首次链接kali系统中的ssh Xshell:帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp) 1.开启kali中的ssh服务,service ssh ...

  10. 虚拟机 Linux ubuntu16.04 对 windows 设置共享文件夹教程(samba)(ubuntu16.04换源【更换下载源】【更换源】【更新源】)(如果连不上需要开SSH服务)

    文章目录 20220324 其实它这个换源貌似也没必要直接修改配置文件,在ubuntu设置里也能更换源 安装 配置(用户不要写yg,写你自己的!) 换源 1.备份原始文件 2.打开文件 3.注释原文件 ...

最新文章

  1. Android10.0 Binder通信原理(二)-Binder入门篇
  2. NOJ 20 吝啬的国度
  3. 数字社交圈里的白酒“新”消费——腾讯2021白酒行业数字营销洞察白皮书
  4. java mongodb 返回所有field_Python爬虫框架:scrapy爬取知乎关注用户存入mongodb
  5. 对python的功能和扩展功能的认知_Python基础-基础认知和库了解
  6. 黄聪:wordpress教程
  7. 线上幽灵:世界头号黑客米特尼克自传改
  8. 一道闪光在图片上划过
  9. java四目运算符_小心! JAVA三目运算符
  10. react-native >0.69版本 链接@ant-design/icons-react-native
  11. 视频直播技术详解之直播云SDK性能测试模型
  12. 一文看懂互联网支付系统架构
  13. CCS 使用报错合集 -mcu:cc26xx
  14. Linux安装-CentOS6.x
  15. 解答c语言的app,你学c语言用的什么app?
  16. Linux学习-40-格式化分区mkfs、mke2fs命令用法
  17. 红米note4x连点Android,红米Note4X lineage16 安卓9.0 极致省电 纯净 完美root Xposed 经典版...
  18. 对称加密和非对称加密(to be continued)
  19. Adobe Flash Professional CS5 下载
  20. 六级Translation

热门文章

  1. java8学习之方法引用详解及默认方法分析
  2. 作业2——需求分析原型设计
  3. ANSI,UTF-8,Unicode,ASCII编码的区别
  4. 6.2.2 构造函数模式
  5. sizeof(空类或空结构体)
  6. 步步为营103-ZTree 二级联动
  7. Atitit.web ui  组件化 vs  mvc
  8. centos Install Docker
  9. JS定义数组,初始化
  10. EasyUI-在行内进行表格的增删改操作