安装ruby gems offline / proxy配置

时间:2013-06-06 09:56:50

标签: ruby-on-rails ruby proxy gem

我需要在没有连接到互联网的服务器上的rails + Nokogiri,httparty,json [以及一些不太重要的宝石]上安装ruby。如何做到这一点?

主机操作系统是windows

其他问题,嗯,这对我来说不是很好,因为它可能需要几天时间,但我可以作为客户给这个服务器访问http代理。但是我必须承认,我已经尝试过使用像这样的东西了

set http_proxy="http://username:password@host:port"

gem --http_proxy "http://username:password@host:port"

但在这两种情况下都无法访问gem商店:(

6 个答案:

答案 0 :(得分:7)

我这样解决了:

set http_proxy=host:port

没有任何引号,http://协议和用户名:密码。 干杯

答案 1 :(得分:6)

这对我有用。

gem install -p http://proxy_ip:proxy_port rails

答案 2 :(得分:4)

导航到要安装的所需gem下载页面。例如,我试图安装Sass,所以我用Google搜索并到达sass 3.3.14。当我在我的办公室代理后面时,我点击下载链接并将gem下载到目录中。

接下来,通过Ruby命令行,使用pushd D:\Setups导航到已安装的目录并使用:

D:\Setups> gem install sass --local

应安装所需的宝石。

答案 3 :(得分:3)

您可以将rubygems所需的所有宝石(也包含依赖项)下载到您的服务器,然后运行gem install gem_name --local进行安装。

答案 4 :(得分:3)

对于代理使用,Wolfbyte的回答对我有用。我正在使用Debian 7(Wheezy)。

How do I update Ruby Gems from behind a Proxy (ISA-NTLM)

我也会在下面粘贴他的答案:

我无法通过命令行开关工作,但我只能通过设置HTTP_PROXY环境变量来做到这一点(注意案例似乎很重要)。我有一个批处理文件,里面有这样的行:

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%

在我明确到达此行之前,我设置了四个引用的变量。例如,如果我的用户名是wolfbyte,我的密码是秘密的,我的代理名为pigsy,并在端口8080上运行:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

您可能需要小心如何管理它,因为它在机器的会话中以明文形式存储您的密码,但我认为这不应该是一个太大的问题。


另外,我的密码里面有搞笑的字符 - 你必须按照以下方式编写URLEncode: http://www.cyberciti.biz/faq/unix-linux-export-variable-http_proxy-with-special-characters/

希望这有帮助!

科林

答案 5 :(得分:2)

快速解决方案:

gem install -p http://proxy_ip:proxy_port rails

是一种快速且有效的方式,但我需要为每次安装提供永久性的东西。

永久解决方案:

  1. 创建文件:

    vi ~/.gemrc
    
  2. 添加内容

    # HTTP Proxy options
    http_proxy: http://proxy_ip:proxy_port
    https_proxy: http://proxy_ip:proxy_port
    # For authentication (although not tested)
    http_proxy_user: username
    http_proxy_pass: password
    https_proxy_user: username 
    https_proxy_pass: password 
    
  3. 验证代理出现在gem环境变量

    gem env
    
  4. RubyGems环境:    - RUBYGEMS版本:2.5.2    - RUBY VERSION:2.3.3(2016-11-21 patchlevel 222)[universal.x86_64-darwin17]