我需要在没有连接到互联网的服务器上的rails + Nokogiri,httparty,json [以及一些不太重要的宝石]上安装ruby。如何做到这一点?
主机操作系统是windows
其他问题,嗯,这对我来说不是很好,因为它可能需要几天时间,但我可以作为客户给这个服务器访问http代理。但是我必须承认,我已经尝试过使用像这样的东西了
set http_proxy="http://username:password@host:port"
或
gem --http_proxy "http://username:password@host:port"
但在这两种情况下都无法访问gem商店:(
答案 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
是一种快速且有效的方式,但我需要为每次安装提供永久性的东西。
创建文件:
vi ~/.gemrc
添加内容
# 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
验证代理出现在gem环境变量
中gem env
RubyGems环境: - RUBYGEMS版本:2.5.2 - RUBY VERSION:2.3.3(2016-11-21 patchlevel 222)[universal.x86_64-darwin17]