Bundle说宝石丢失了 - 但事实并非如此?

问题描述 投票:1回答:5

背景

我正在维护Ruby On Rails站点的内容,但我真的没有使用Rails的经验。

当试图运行Rails服务器时:rails s我得到了这个:

无法在任何来源中找到activesupport-3.2.0

运行bundle install安装缺少的宝石

我运行bundle install

Gem :: InstallError:factory_girl需要Ruby版本> = 1.9.2。安装factory_girl(3.2.0)时发生错误,Bundler无法继续。

在捆绑之前确保gem install factory_girl -v '3.2.0'成功。

好的,我按照说明安装factory_girl:

已成功安装factory_girl-3.2.0 1 gem

再次运行bundle install:

Gem :: InstallError:factory_girl需要Ruby版本> = 1.9.2。安装factory_girl(3.2.0)时发生错误,Bundler无法继续。在捆绑之前确保gem install factory_girl -v '3.2.0'成功。

你有什么主意吗?

信息

昨天我在尝试运行rails服务器时遇到了一个交叉错误。所以根据this SO advice,我建议我已经修改了RVM并安装了rbenv和bundler而不是RVM。

我试过Ruby 1.9.3-p125和1.9.3-rc1

gem list的输出显示factory_girl已安装。

  • ...
  • factory_girl(3.2.0)
  • ...

gem environmentshows的输出问题可能有一些东西与ruby 1.9.1也正在安装?

RubyGems环境: - RUBYGEMS版本:1.8.10 - RUBY VERSION:1.9.3(2011-09-23 patchlevel -1)[x86_64-darwin11.3.0] - 安装目录:/Users/andreas/.rbenv/versions/1.9.3-rc1/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE:/Users/andreas/.rbenv/versions/1.9.3-rc1/bin/ruby - EXECUTABLE目录:/Users/andreas/.rbenv/versions/1.9.3-rc1/bin - RUBYGEMS PLATFORMS: - 红宝石 - x86_64-darwin-11 - 创业板路径: - /Users/andreas/.rbenv/versions/1.9.3-rc1/lib/ruby/gems/1.9.1 - /Users/andreas/.gem/ruby/1.9.1 - 创业板配置: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - “gem”=>“ - no-ri --no-rdoc” - 远程来源: - http://rubygems.org/

ruby-on-rails ruby rubygems rbenv
5个回答
3
投票

@jdoe在评论中回答。它奏效了。显然我需要删除Gemfile.lock

我不知道为什么或怎么样。我只是在这里张贴这个,直到@jdoe出现并用真实答案收集他的分数。


2
投票

尝试使用以下命令重新安装所有gem

bundle install --force

0
投票

首先要做的事 - 我没有rbenv的经验。

RVM的一个好处是它有助于明确地说明Ruby环境的移动部分是什么。

rvm列表会给你一个Rubies列表rvm gemset list会给你一个gemsets列表(如果使用bundler这不应该是必需的)

现在,这里有一些棘手的事情:

  • Bundler使用Gemfile来确定要安装的内容
  • 如果没有指定任何内容,Bundler将尝试安装最新版本的gem
  • 如果宝石的最新版本与您当前的Ruby不兼容,那么...... 您可以更改Ruby的版本(例如rvm install 1.9.3) 您可以告诉Gemfile指定您想要的gem版本,具有不同程度的严格性。 你能说出我喜欢缩进的要点吗? 宝石“vcr”,“〜> 1.11.3”#=>这会说你更喜欢1.11.3但1.11范围内的任何东西都可以接受 gem'factory_girl','3.2.0'#=>这就是说,只安装了factory_girl的版本3.2.0,没有别的

此外,在其他任何事情之前,您应该运行捆绑检查以查看捆绑包有关您的宝石的说法。


0
投票

你试过这个吗?

bundle exec rails s

0
投票

确保你安装的所有宝石都在Gemfile中,因为如果gem没有添加到Gemfile中,即使你手动安装它,你的Rails应用程序也无法获得它。

示例Gemfile将是

gem 'rails', '3.0.0'

gem 'mysql2', '< 0.3'
gem 'rails3-jquery-autocomplete'

#authorization
gem 'authlogic'
gem 'hoptoad_notifier'

#reporting
gem 'lazy_high_charts'

group :test do
  gem 'rspec', '2.0.0'
  gem 'rspec-rails', '2.0 '
  gem "test-unit"
end
© www.soinside.com 2019 - 2024. All rights reserved.