我在没有真正互联网访问权限的企业环境中工作。我必须维护几个ruby应用程序,这些应用程序都基于默认的ruby发行版,其中包含一些因应用程序而异的额外gem。我不能建立一个基于服务器的宝石存储库,但我可以在其中一个主服务器上有一个共享目录来存储我的宝石(这本身就是一场斗争)。
我知道我可以通过执行
来安装gemgem 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'背后的概念,但如果我不能用它来安装宝石有什么用??
编辑:
宝石似乎确实在几个不同的步骤中起作用:
如果没有互联网访问或您使用“--local”,则只有最后一步可用。似乎有人将前3个步骤实现为单片块。至少我发现无法在进程中引入本地xml gem存储库描述。在我看来,一个设计错误使整个宝石的过滤过程无用,除了非常特殊和罕见的用例。