从本地目录安装GEM

时间:2014-08-13 10:14:54

标签: ruby gem rubygems

我在没有真正互联网访问权限的企业环境中工作。我必须维护几个ruby应用程序,这些应用程序都基于默认的ruby发行版,其中包含一些因应用程序而异的额外gem。我不能建立一个基于服务器的宝石存储库,但我可以在其中一个主服务器上有一个共享目录来存储我的宝石(这本身就是一场斗争)。

我知道我可以通过执行

来安装gem
gem install pfad/gemfile-version.gem

似乎不起作用的是整个版本选择机制。不应该

gem install gemfile -v version -i pfad

工作?

设置GEM_PATH也没有用。让我们有一个真实世界的例子

gem install i:\rufus-scheduler-3.0.8.gem

作品,

set GEM_PATH=i:\
gem install rufus-scheduler -v ">=3.0"

ERROR:  Could not find a valid gem 'rufus-scheduler' (>= 0) in any repository

我尝试了“bundler”,写了一个“gemfile”

source "i:\"
gem "rufus-scheduler", ">=3.0"

无济于事。

现在,我认为所有这些宝石业务都是为少数用户编写的,并不是真的在现实世界中工作:/

有人能告诉我我的错误或指向我更好的解决方案吗?我喜欢有'gemfile'背后的概念,但如果我不能用它来安装宝石有什么用??

编辑:

宝石似乎确实在几个不同的步骤中起作用:

  • 获取存储库的xml描述
  • 在xml中搜索指定标准(版本,平台等)的标签
  • 获取指定的标签* .gem-file
  • 安装* .gem-file

如果没有互联网访问或您使用“--local”,则只有最后一步可用。似乎有人将前3个步骤实现为单片块。至少我发现无法在进程中引入本地xml gem存储库描述。在我看来,一个设计错误使整个宝石的过滤过程无用,除了非常特殊和罕见的用例。

0 个答案:

没有答案