[转]http://yansu.org/2013/05/20/set-proxy-for-git-or-apt.html 和 http://my.oschina.net/tsl0922/blog/134755
最近使用git从github上clone代码,总是失败,奔溃了快。还有ubuntu连apt-get update都执行不了,有的时候都装不了git,就快骂娘了。可惜在这样一个环境下,只能靠自己搞定了,设置代理是比较好的方式
安装goagent
这个教程网上很多,放狗一搜即可。不过网上goagent教程里讲的大部分是给浏览器用的。其实goagent是监听了本地的8087端口,其实任何程序都可以利用这个端口,只要设置好即可。
linux系统下的设置方法见:http://blog.csdn.net/dgq227/article/details/12004685
设置git代理
设置代理服务器有很多种方式,我使用的是设置环境变量的方式:这样
export https_proxy="127.0.0.1:8087" 或
export
https_proxy=
"http://localhost:8087"
export http_proxy="127.0.0.1:8087"
或export
http_proxy=
"http://localhost:8087"
git clone
就是走代理了,其实这个设置完以后apt-get的操作也是通过代理的了
不过,http方式正常,但是https方式git就会提示CA证书不受信任了,可以通过以下方式把goagent的CA加到系统信任列表里:
最后一个命令会有一个图形界面,在里面勾选goagent的CA就可以了。
sudo
cp
path/to/goagent/
local
/CA.crt /usr/share/ca-certificates/goagent.crt
sudo
chmod
a+r /usr/share/ca-certificates/goagent.crt
sudo
dpkg-reconfigure ca-certificates
或直接禁用sslverify验证:
git config --global http.sslVerify fals
设置apt-get代理
上面的方法也可以直接使apt代理,如果不想设置环境变量,可以使用下面命令
sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8087/" update
注:Git 目前支持的三种协议 git://
、ssh://
和 http://
,其代理配置各不相同:core.gitproxy
用于git://
协议,http.proxy
用于 http://
协议,ssh://
协议的代理需要配置 ssh 的ProxyCommand
参数。