iTerm2 使用代理更新brew

问题描述:

在iTerm2中执行brew update命令时,报出了以下错误:

fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

 原因也很简单,和无法访问google是一个道理。由于电脑上使用了代理进行科学上网,就想着能不能在终端iTerm2中也使用代理更新brew源,答案是肯定的!

解决方案:

1. 下载ShadowsocksX: https://github.com/shadowsocks/ShadowsocksX-NG/releases/

2. 配置代理服务器:

   (1) 点击Shadowsocks图标 -> Servers -> Server Preferences

   (2) 点击左下角 + 号新增Server,填写代理的服务器地址、端口号、加密方式以及密码,如果有多个代理,可以给这个代理起个名字(remark),方便区分,OK即可。

3. 终端配置

   (1) 点击Shadowsocks图标 -> Preferences... -> 查看HTTP代理监听的端口号和地址

   (2) 打开 ~/.bash_profile文件(如果没有,新建一个),写入如下内容,注意这里的端口号和上一步的端口号保持一致

# proxy
export http_proxy=http://127.0.0.1:1087
export https_proxy=$http_proxy

   (3) 在iTerm2中执行source命令使之生效

source ~/.bash_profile

4. 使用curl命令验证终端是否启用了代理

$ curl ip.cn
当前 IP:66.15.20.180 来自:美国 Linode
$ curl cip.cc
IP	: 47.98.20.140
地址	: 中国  浙江  杭州
运营商	: 阿里云

数据二	: 加拿大

URL	: http://www.cip.cc/47.98.20.140

$ curl -i https://google.com
HTTP/1.1 200 Connection established

...

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>

 5. 再次执行brew update命令更新brew源,应该很顺畅的完成更新。

附录:

1. 查看代理端口号是否被占用:

$ env | grep -i proxy
http_proxy=http://127.0.0.1:8087
https_proxy=http://127.0.0.1:8087

2. 参考文章

Mac OSX终端走shadowsocks代理: https://github.com/mrdulin/blog/issues/18

Mac 终端代理设置: https://my.oschina.net/Jerrymingzj/blog/805769

使用代理解决brew更新软件超时的问题: https://liyang.pro/using-proxy-to-resolve-issues-with-brew-upgrade-timeout/

猜你喜欢

转载自blog.csdn.net/pansanday/article/details/81284848