让 Homebrew 走代理更新

之前我们说过,由于国内网络进一步恶劣,使用 brew 也要更换国内大学的镜像源,但是这样的方法治标不治本,更新是快了,可是下载还是一样。

结果就是导致大部分的更新都需要去下载源码然后本地编译,运气差一点的干脆源码也下载不下来,每次都要取消然后重试,不停地手工重复。

——如果能让终端命令走代理就好了。

是的,你可能想到了什么比如 proxychains-ng 这类的软件,其实不用,因为 brew 是支持全局代理的,我们只需要在当前环境当中加入代理配置即可。

在终端中输入如下代码:

如果说你想要 brew 永久如此,我们就需要将环境变量写入终端的配置当中,这取决于你的终端,如果是默认的 bash,则写入 ~/.bash_profile ,如果是 zsh,则写在 ~/.zshrc  里。

或者直接用如下语句来将命令直接导入到配置文件里,感谢 surveillance104 的提醒哦!

 

这样,Homebrew 就能通过 shadowsocks 来更新了,速度嗖嗖的。:)

注意

你应当注意,如果你使用了这条命令,可能大部分的终端命令都会使用代理了(ping不会的放心?)如果有些特别的命令总是直接失败,你应当首先想到可能是代理惹的祸;另外,brew不能通过代理来使用中国镜像源——原因你自己想:)

anyShare分享到:

“让 Homebrew 走代理更新”的24个回复

  1. Surge中有一个选项,是“copy shell export commond”。
    复制出来的指令“export https_proxy=http://127.0.0.1:端口号;export http_proxy=http://127.0.0.1:端口号”,粘贴到终端里之后似乎还是不能代理,这是为什么?
    而博主你的指令“export ALL_PROXY=socks5://127.0.0.1:端口号”是可以的,这又是为什么?
    能否麻烦解释其中的原理?

    1. 🤦‍♂️好像也没啥为什么,就是不能。有些软件他就不遵守这个规则不读变量你没脾气。像Python,我至今搞不懂它什么时候走代理什么时候不走代理……………………

  2. 落格同學你好,我是surveillance104
    我在介紹OS X安裝zeronet的教程貼的時候應用了這個與切換中國大陸高校的brew源帖子 已經署名 如果落格同學介意的話我馬上刪除 連結的話在這裡: https://tr.im/LB9tH
    順便如果想一勞永逸的話可以直接在terminal輸入:
    echo export ALL_PROXY=socks5://127.0.0.1:1080 >> ~/.bash_profile

    1. 当然可以!完全没有问题!切换源并不是个好办法,因为大多数的包可能还是需要从国外的地址下载的,我自己现在也是用你说的方法——这个方法我在另外一篇文章里写了我把你这个也写入文章里:),不过,如果使用全局代理,就不应该再继续使用中国brew源,这一点你应当注意呢:)

  3. 请教:运行brew cask update报错,该怎么解决呢?
    ==> fatal: unable to access ‘https://github.com/caskroom/homebrew-cask/’: SSLRea
    ==> Error: Fetching /usr/local/Library/Taps/caskroom/homebrew-cask failed!
    Already up-to-date.
    fatal: unable to access ‘https://github.com/caskroom/homebrew-cask/’: SSLRead() return error -9806
    Error: Fetching /usr/local/Library/Taps/caskroom/homebrew-cask failed!

发表评论

电子邮件地址不会被公开。 必填项已用*标注