【发布时间】:2013-08-24 08:25:19
【问题描述】:
我有一个本地 ruby 解释器创建了一个安装在 /usr/lib/projectA/ruby/bin/ruby 下的第三方
现在,我想将整个文件夹结构复制到另一个具有相同结构的文件夹中:/usr/lib/projectB/ruby/bin/ruby
复制文件后,调用复制的 ruby,例如
# /usr/lib/projectB/ruby/bin/ruby -v
ruby 1.9.x
但是,当我运行时似乎正在工作
# /usr/lib/projectB/ruby/bin/ruby -e 'puts 1'
<internal:gem_prelude>:1:in `require': cannot load such file -- rubygems.rb (LoadError)
from <internal:gem_prelude>:1:in `<compiled>'
好像找不到rubygems,所以我添加路径
# /usr/lib/projectB/ruby/bin/ruby -e 'puts 1' -I '/usr/lib/projectB/ruby/lib/'
/usr/lib/projectB/ruby/lib/ruby/1.9.1/rubygems.rb:31:in `require': cannot load such file -- rbconfig (LoadError)
现在,无法加载其他文件,所以我假设还会有更多文件..
所以
- 为我的新 ruby 设置新的 rubygems 基本路径的正确方法是什么?
- 为什么即使调用
puts 1也会调用 rubygems?
附言我不能使用 rvm 或类似方法,因为我们需要将整个 zip 包与 ruby 一起部署给我们的用户。
【问题讨论】: