在Ruby on Rails中,将vendor / gems / somegem从一个项目复制到另一个项目与冻结gem一样吗?

我被告知要复制

vendor/gems/somegem 

从proj1到proj2的文件夹将基本上将gem冻结到项目中。 gem somegem是一个内部gem,因此没有可以安装它的存储库。 但我想知道如何使用Rails 3,因为我们需要使用它

 gem 'somegem' 

在Gemfile中,据说当我们做一个gem listgem list的名字应该显示出来。 这样做的好/正确方法是什么? 谢谢。

我相信Gemfile.lock文件存储正在使用的gem的版本,以及任何和所有依赖项,因此您可以基本上复制GemfileGemfile.lock并运行bundle install

在Gemfile中,您可以告诉bundler从本地路径获取gem:

 gem 'somegem', :path => "some_path/to/somegem" 

如果您的’gem’实际上是一个插件,那么只需将文件复制到vendor/plugins

如果插件目录中的install.rb执行任何特殊操作,您可能需要手动运行它。