Ruby on rails 将Ruby项目配置为在Gemfile之外使用gems

Ruby on rails 将Ruby项目配置为在Gemfile之外使用gems,ruby-on-rails,ruby,rubygems,bundler,Ruby On Rails,Ruby,Rubygems,Bundler,根据我的理解(以及我通过使用它所看到的),如果一个项目有一个Gemfile,它只能访问Gemfile中的gem(或者更具体地说,Gemfile.lock文件) 我希望能够使用一些安装在系统上的gems,但不特别是Gemfile.lock文件中的gems-我将如何实现这一点 我的理由是:我们有一个开发者虚拟机设置,确保一切都是最新的;但是,如果不在项目中运行bundle update,我们使用的工具(依赖于Gem)就无法更新(或者甚至无法使用,如果它不在Gem文件中) 我可以保持gem的更新,但不

根据我的理解(以及我通过使用它所看到的),如果一个项目有一个Gemfile,它只能访问Gemfile中的gem(或者更具体地说,Gemfile.lock文件)

我希望能够使用一些安装在系统上的gems,但不特别是Gemfile.lock文件中的gems-我将如何实现这一点

我的理由是:我们有一个开发者虚拟机设置,确保一切都是最新的;但是,如果不在项目中运行
bundle update
,我们使用的工具(依赖于Gem)就无法更新(或者甚至无法使用,如果它不在Gem文件中)

我可以保持gem的更新,但不能强迫项目在不更新Gemfile.lock信息的情况下使用该版本-因此我更愿意让项目使用所有或特定的系统gem,并将Gemfile作为“让您的系统与项目同步的快速方法”


另一个注意事项:应用程序使用rake任务进行操作(该工具有一个gem,gem查找用于自定义配置的特定rake文件)。

您只需要需要使用库(读取gem)

您可以在使用gem功能的特定文件中要求它,也可以在
config/application.rb
(Rails 3中)中要求它使整个应用程序都可以使用它

为安全起见,请确保gem可用:

if Gem::Specification::find_by_name('my_gem')
  require 'my_gem'
end

您的系统gems安装在哪里

确保将
GEM_PATH
env var设置到该位置

使用
gem env gempath
检查是否已正确设置

如果没有,请在
~/.bashrc
~/.bash\u profile

export GEM_PATH='/path/to/system/gems'

嗯,运气不好。我正在运行Rails 3.2.6-它现在说“找不到gem名称(>=0)并列出了Bundler安装的所有gem,但并不是系统上的所有gem,因为我在检查gem list时安装了gem。在最后一行更新了我的问题,添加了一些额外的信息。还在Rakefile中添加了一个要求。这是基于每个项目的。对于没有gem文件的项目,它可以正常工作。这是Gemfile“功能”,您仅限于该项目中Gemfile中的宝石。我会尝试一下,但您所指的似乎不起作用。我可以在其他任何地方使用我的宝石。