首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捆绑包exec的Spork错误?

捆绑包exec的Spork错误?
EN

Stack Overflow用户
提问于 2011-08-28 08:28:45
回答 2查看 491关注 0票数 1

每当我运行spork时,我都会得到以下错误:

代码语言:javascript
复制
You have already activated spork 0.9.0.rc8, but your Gemfile requires spork 0.8.5. Consider using bundle exec. (Gem::LoadError)

我的gemfile:

代码语言:javascript
复制
group :development, :test do
    gem "rspec"
    gem "rspec-rails"
    gem "factory_girl_rails"
    gem 'spork' 
    gem 'webrat'
    gem 'awesome_print'

    gem 'vcr'
    gem 'fakeweb'
end

我已经运行了bundle updategem update,甚至gem update --system,但我仍然看到这个错误。运行bundle exec spork可以工作,但是我想知道为什么spork不能工作,以及我如何解决这个问题。

EN

回答 2

Stack Overflow用户

发布于 2012-01-25 06:51:51

也许你的问题已经解决了(我假设),但我在过去的几天里遇到了类似的问题,并找到了这个错误的原因。它与使用bundler时所需的所有gem的版本控制有关。当只提供"spork“时,RubyGems将被激活并查找合适的版本。但这绕过了捆绑器将使用的Gemfile中指定的版本。只有当使用"bundle exec spork“时,捆绑器才能从Gemfile中查找版本。在你的例子中,"spork“指向一个版本为'0.9.0‘的已安装gem,而"bundle exec spork”则使用'0.8.5’。有一个可用的标志("bundle exec --binstubs"),它创建一个"bin“文件夹(Gemfiler1.0),并将>=指定的所有可执行文件放入其中。用"bin/spork“代替"bundle exec spork”是有效的。

搜索Yehuda Katz的"Gem Versioning and Bundler: Doing it Right“,它更详细地解释了一切,对我有很大帮助。

票数 0
EN

Stack Overflow用户

发布于 2012-03-19 15:27:37

在Gemfile中,您可以指定:

代码语言:javascript
复制
gem 'spork', :version => 0.8.5

此外,您可能想要删除较新的spork:

代码语言:javascript
复制
gem uninstall spork -v=0.9.0.rc8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7218262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档