使ruby脚本使用本地gem,而不是常见的

时间:2014-08-29 08:26:02

标签: ruby bundle

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

Gemfile中的

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

所以在将项目克隆到服务器后我运行

bundle install --path vendor/bundle

它在vendor文件夹中创建了包含gems版本的bundle目录,这对我来说是必需的。

之后,我尝试运行获取脚本,通过命令

为db填充一些数据
ruby *_fetch.rb

里面* _fetch.rb:

require 'gem_name'

它失败并出现错误

  

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

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

1 个答案:

答案 0 :(得分:2)

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