如何为gem设置代理服务器?

74

我无法通过命令提示符安装SASS。

我尝试了以下步骤

c:\gem install sass

我遇到了以下错误:

ERROR:  Could not find a valid gem 'sass' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ECONNREFUSED: No connection could be made because the target machine actively refused it. - connect(2) (https://rubygems.org/latest_specs.4.8.gz)

请帮助我,

7个回答

147

对于有或没有身份验证的http/https代理:

在cmd.exe中运行以下命令之一

set http_proxy=http://your_proxy:your_port
set http_proxy=http://username:password@your_proxy:your_port
set https_proxy=https://your_proxy:your_port
set https_proxy=https://username:password@your_proxy:your_port

1
那我该如何删除这些设置呢? - theonlygusti
3
您不需要删除这些设置,因为这些设置仅在命令提示符窗口中生效。如果您关闭命令提示符窗口并重新打开它,您将发现需要重新输入命令才能使其起作用。 - Anwuna
3
如果密码中含有@字符,如何进行逃逸处理 - gaurav5430
1
尝试使用 %40 - Marco Sulla
5
我不知道这个回答是怎么得到那些赞的,但对我没有用。 - ramazan polat
显示剩余5条评论

19

你需要在命令提示符中写入以下内容:

set HTTP_PROXY=http://your_proxy:your_port

12
您需要按照这里所述的方法,添加http_proxyhttps_proxy环境变量。

谢谢,@TylerH。我在我的个人笔记本电脑上检查了一下,可能是因为花哨的格式无法在我们的企业中呈现。 - Ion Freeman

3
除了@Yifei的回答之外,如果您有像@、&、$这样的特殊字符,您需要使用百分号编码 | URL编码来编码这些特殊字符。例如,不要使用以下方式:
http://foo:B@r@http-gateway.domain.org:80

you write this:

http://foo:B%40r@http-gateway.domain.org:80

所以@会被替换为%40

3

2

这里的所有答案都没有帮助到我(代理+密码),相反,我在Github问题中找到了解决方案:

https://github.com/rubygems/rubygems/issues/1068

基本上我需要设置三个变量:

set http_proxy=proxy_ip:port
set http_proxy_user=user
set http_proxy_pass=password

2

您可以尝试使用 export http_proxy=http://your_proxy:your_port


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接