我在虚拟机中运行 12.04,并且使用公司代理。
我已经设置了环境变量(尝试了 [http|https|ftp]_proxy 的全部小写和全部大写,以及不指定用户: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)
和
$ 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)
我在 StackOverflow 上进行了一些搜索,并尝试了所有不需要设置 VPN 或隧道或外部程序的方法。
我是否遗漏了某些内容,或者我的环境变量是否存在错误?
更新
忘了说了,我可以从我的主机工作站下载 gem 并以此方式安装它们,但如果可能的话,我更愿意直接安装。这很麻烦,尤其是当涉及很多依赖项时。
此外,值得一提的是:$ gem --version 1.8.15
答案1
使用 sudo 时不会保留环境,因此单独设置 http_proxy 变量是无效的。您需要导出 http_proxy 变量,然后使用选项 -E 运行 sudo
export http_proxy=...
sudo -E gem list -r