从公司防火墙后面安装宝石

dig*_*tum 7 ruby firewall rubygems jruby

我怀疑企业防火墙阻止了宝石的安装.我定义了HTTP_PROXY,我可以通过以下命令查看远程gems:

jruby -S gem list -r
Run Code Online (Sandbox Code Playgroud)

但是当我去安装宝石时,我得到了404:

jruby -S gem install rails
Run Code Online (Sandbox Code Playgroud)

除了维护内部gem存储库之外,还有解决此问题的好方法吗?

pet*_*ter 9

对于红宝石宝石,把它放在我的gem.bat中这对我有用

@"%~dp0ruby.exe" "%~dpn0" %* --http-proxy http://domainname.ccc.com:8080
Run Code Online (Sandbox Code Playgroud)

对于jruby宝石,这是有效的

@"%~dp0jruby.exe" "%~dpn0" %* -p http://domainname.ccc.com:8080
Run Code Online (Sandbox Code Playgroud)

同样设置环境变量就像

set http-proxy=http://domainname.ccc.com:8080
Run Code Online (Sandbox Code Playgroud)

或者您的代理服务器需要身份验证

set http-proxy=http://user:password@host:port)
Run Code Online (Sandbox Code Playgroud)

编辑:对于拥有非常严格的防火墙或没有互联网访问权限的人(例如在服务器上),您可以执行以下操作:在可以免费访问互联网的PC上安装gem,然后检查文件夹C:\ Ruby193\lib\ruby​​\gems\1.9.1\cache并复制所有宝石,其中包含您安装完成后最后修改的日期.在目标PC上,您将它们复制到同一文件夹中,或者如果您之后在bin文件夹中清理并在那里开始安装

c:\ruby193\bin\gem.bat install --local gemname-x.x.x.gem
Run Code Online (Sandbox Code Playgroud)

gemname-xxxgem是您要安装的基本gem的gem文件名.应该安装具有所有依赖项的gem.这适用于Windows,但其他操作系统可以使用相同的技术,只需适应一些事情.成功


dig*_*tum 0

自从 gemcutter.org 人员将模式设置为 Amazon 的 Cloudfront 并且能够通过我雇主的防火墙再次下载 gems 以来,我已经重新测试了这一点。