Wednesday, 27 September 2006

Proxy setting for RubyGems under Windows

Ruby通过RubyGems,安装和管理附加的组件。我的机器上安装有Ruby 1.8.5和RubyGems 0.9.0,在办公室里,是透过Proxy连接到Internet上。在这个条件下,发现RubyGems的运行有些怪异。因为要在不同的上网环境里工作,不太喜欢修改环境变量。因此,一般是直接附加设置选项来执行命令。

从Help中看到,gem在命令行参数中提供了-p选项,以设置proxy。但用下来的结果,居然是一半工作、一半不工作。

对于list命令,

gem list -r -p http://www-cache.xxx.au:8080

没有问题,工作的很好。而当我要安装某个组件的时候,

gem install sqlite3-ruby -y -p http://www-cache.xxx.au:8080

那就一定会出错。更为无奈的是,如果要更新已安装的组件,

gem update -p http://www-cache.xxx.au:8080

Gem会告诉我那个组件要更新,还让我进行版本选择,但一到实际更新就出错。有点令人哭笑不得。

没有办法,只有老老实实地去改环境变量。可以在Control Panel里面改,不过,回到家里又要改回来,太麻烦。简单的解决办法,是在执行Gem命令之前,先设置Proxy。

set HTTP_PROXY=http://www-cache.xxx.au:8080

0 Comments:

Post a Comment

<< Home