2014-08-29 64 views
1

我正在部署我的rails项目到生产服务器。只有1.9.3版本的ruby(我在2.1.2上开发),所以在宝石版本中几乎没有兼容性问题。更重要的是,我将宝石中的一个下载到了vendor/gem_name,并在源代码中进行了必要的修复,因此我需要准确使用该宝石的版本,并且如您所知,无法更新它。使红宝石脚本使用当地的宝石,而不是共同的

中的Gemfile

require 'gem_name', :path => 'vendor/gem_name' 

克隆项目到服务器之后,所以我跑

bundle install --path vendor/bundle 

,它创建捆目录供应商目录宝石版本,需要我,它里面。

之后,我试图运行脚本获取由命令

ruby *_fetch.rb 

一些数据来填充* _fetch.rb内DB:

require 'gem_name' 

它失败,错误

您已激活gem_name older_version,但您的Gemfile需要 gem_name newest_version。使用bundle exec可以解决这个问题。 (Gem :: LoadError) from /usr/local/rvm/gems/ruby-1.9.3-p374/gems/bundler-1.3.5/lib/bundler/runtime.rb:19:in` setup'

那么我怎么能指定脚本来要求我编辑的本地gem?

回答

2

运行它bundle exec这正是bundle exec的用途。

+0

我已经试过了。 'bundle exec data_fetch.rb'输出: bundler:找不到命令:zpinfo_fetch.rb 使用'bundle install'安装缺少的gem可执行文件 运行软件包安装完成'您的软件包已完成! 它被安装到./vendor/bundle' – Hroft 2014-08-29 08:37:40

+1

你试过'bundle exec ruby​​ data_fetch.rb'吗? – 2014-08-29 08:38:15