gem在本地安装XYZ(无需连接到互联网)

时间:2011-01-21 11:59:56

标签: ruby install gem offline

我需要在没有互联网连接的计算机上安装win32-apiantlr3。如果有这样的联系,我会像这样使用宝石:

gem install win32-api -r
gem install antlr3 -r

这显然不会起作用。所以,我认为应该有一种方法可以下载 gem 并在以后安装它,但我不确定如何继续。

我找到了gem的which运算符,它似乎表示了gem的本地位置:

c:\>gem which antlr3
c:/tools/Ruby187/lib/ruby/gems/1.8/gems/antlr3-1.8.8/lib/antlr3.rb

然而,它在win32-api上不起作用:

c:\>gem which win32-api
ERROR:  Can't find ruby library file or shared library win32-api

虽然我以前安装过它。

有人可以向正确的方向暗示从这里继续吗?

3 个答案:

答案 0 :(得分:9)

尝试,

  

gem install --local path / to / file.gem

答案 1 :(得分:1)

我在VM上遇到了一些问题。虚拟机故意无法上网(运动鞋网测试机),但仍配置了一些DNS服务器。

例如:

$ gem install bundler-1.7.7.gem --local
ERROR:  While executing gem ... (Errno::ENETUNREACH)
    Network is unreachable - sendto(2) for "192.168.1.10" port 53

192.168.1.10是VirtualBox配置的DNS服务器。所以我要做的就是评论/etc/resolv.conf;在所有线的开头。即使离开Goog​​le DNS也会破坏它。

; /etc/resolv.conf
nameserver 8.8.8.8  ; nope.  gem install --local doesn't like it
; You will get a Network is unreachable - sendto(2) for "8.8.8.8" port 53

如果您注释掉所有/etc/resolv.conf,那么您可以在本地(从文件)安装gems。

$ gem install bundler-1.7.7.gem --local
Successfully installed bundler-1.7.7
Parsing documentation for bundler-1.7.7
Installing ri documentation for bundler-1.7.7
Done installing documentation for bundler after 4 seconds
WARNING:  Unable to pull data from 'https://rubygems.org/': no such name (https://rubygems.org/specs.4.8.gz)
1 gem installed

Ruby gems版本:Ruby 2.1.5上的2.4.4。

答案 2 :(得分:0)

gem将首先查看.gem个文件后的当前目录。尝试在具有Internet连接的计算机上下载要安装的gem的.gem个文件(并且不要忘记依赖项),然后将文件移到另一台计算机上并运行gem install xyz放置.gem文件的目录。