我将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'
那我怎么能指定脚本来要求我编辑的本地宝石?
答案 0 :(得分:2)
使用bundle exec
运行它正是bundle exec
的用途。