12.04 下奇怪的网络问题

12.04 下奇怪的网络问题

我在命令行中使用网络时遇到了问题,特别是 gem 安装程序(我昨天遇到了类似的问题,但不记得具体是什么问题)。

因此,我得到:

pete@pete-Latitude-E6510:~$ sudo gem install bundler
[sudo] password for pete: 
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/gems/bundler-1.1.3.gem)

接下来,我无法 ping 外部地址:

pete@pete-Latitude-E6510:~$ ping -c 3 209.85.231.104
PING 209.85.231.104 (209.85.231.104) 56(84) bytes of data.
From 10.8.8.2 icmp_seq=1 Destination Port Unreachable

我使用代理。我可以 ping 10.8.8.2 上的默认网关(我相信是这样的)和 10.8.8.13 上的代理(它在非标准端口上运行)。

apt-get例如,从命令行运行良好,并且所有访问(浏览器、更新管理器等)在 GUI 中运行良好。

我已经在 Google 上进行了广泛的搜索,但目前无法进一步了解。

答案1

看来 Gem 不尊重或不了解系统范围的代理设置。要使用代理,Gem 要求:

  1. http 代理被指定为环境变量
  2. Gem 指示通过命令行开关或通过使用此代理.gemrc

因此,在您的终端会话中,首先指定代理,假设它位于端口 12345 上(根据需要更改):export HTTP_PROXY=http://10.8.8.13:12345

然后使用开关调用-pGem在最后sudo gem install bundler -p

为了使其持久,您可以HTTP_PROXY.bashrc(其他控制台程序,包括wgetcurl也将在设置时使用它)中设置,对于 gem,将行添加--http-proxy$HOME/.gemrc

相关内容