无法从代理后面安装 gems

Lee*_*der 5 ruby proxy 12.04 gem

我在 VM 中运行 12.04,并且支持公司代理。

我已经设置了环境变量(尝试了 [http|https|ftp]_proxy 的所有小写和所有大写,以及未指定 user:pass 而是设置 http_proxy_[user|pass])

我可以通过 curl/wget 访问网络,而且我也很容易使用我的代理设置。

但是我一直无法让 gem 安装,甚至无法列出任何远程 gem。

当我尝试时,我得到以下信息:

$ sudo gem install hiera
ERROR:  Could not find a valid gem 'hiera' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/latest_specs.4.8.gz)
Run Code Online (Sandbox Code Playgroud)

$ sudo gem list -r

*** REMOTE GEMS ***

ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/latest_specs.4.8.gz)
Run Code Online (Sandbox Code Playgroud)

我在 StackOverflow 上做了一些搜索,并尝试了所有不需要设置 VPN 或隧道或外部程序的方法。

有什么我遗漏的,或者我有错误的环境变量吗?

更新

忘了提一下,我可以从我的主机工作站下载 gems 并以这种方式安装它们,但如果可能的话,我更希望能够直接安装。这很麻烦,尤其是当涉及很多 deps 时。

另外,它的价值是: $ gem --version 1.8.15

Jul*_*Ch. 8

使用sudo时不保存环境,所以单独设置http_proxy变量是无效的。您需要导出 http_proxy 变量,然后使用选项 -E 运行 sudo

export http_proxy=...
sudo -E gem list -r
Run Code Online (Sandbox Code Playgroud)