bundle install - 需要Ruby版本> = 1.9.2?

时间:2014-02-10 21:18:36

标签: ruby-on-rails ruby

我刚开始使用Ruby on Rails进行一些开发并尝试在本地运行应用程序。该应用程序正在安装了Ruby 1.8.7的生产环境中工作。

我在我的计算机上使用Ruby 1.8.7作为默认设置RVM。但是,当我尝试运行bundle install时,我收到以下错误消息:

Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occurred while installing mime-types (2.1), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.1'` succeeds before bundling.

我尝试在mime-types中查找Gemfile但找不到它;这让我相信它是来自另一个宝石的依赖。

奇怪的是,生产服务器也是使用Ruby 1.8.7设置的,所以我不确定应用程序最初设置如何运行,特别是当mime-types需要Ruby版本> = 1.9.2时跑。

我在生产服务器上的mime-types中找不到Gemfile.lock,因此无法确定哪些宝石试图包含它。

有谁知道如何让这个应用程序在本地工作,这样我才能开始开发?

我对Ruby或Rails没有太多经验。

提前致谢。

的Gemfile:

source :gemcutter

gem "mongrel"
gem "ruby-debug"
gem "rails", "2.3.5"
gem "inherited_resources", "1.0.2"
gem "responders", "0.4.2"
gem "activerecord-sqlserver-adapter", :path => "vendor/plugins/activerecord-sqlserver-adapter-1.0.0"
gem "paperclip"
gem "ferret"
gem "crypt" # might need to install for system because of native dependencies
gem "active_scaffold", :path => "vendor/plugins/active_scaffold"
gem "render_component", :path => "vendor/plugins/render_component"
gem "unobtrusive_date_picker", :path => "vendor/plugins/unobtrusive_date_picker"
gem "acts_as_reportable"
gem "will_paginate", :path => "vendor/plugins/will_paginate"
gem "acts_as_transformer", :path => "vendor/plugins/acts_as_transformer"
gem "acts_as_paranoid", :path => "vendor/plugins/acts_as_paranoid"
gem "select_from_lookup", :path => "vendor/plugins/select_from_lookup"
gem "pdfkit"
gem "wirble"
gem "hirb"
gem "dbi"
gem "dbd-odbc"
gem "geokit"
gem "htmlentities"
gem "jeremyevans-exception_notification", :path => "vendor/plugins/exception_notification"

group :development, :test do
  gem "pdf-toolkit"
  gem "rspec", "1.2.9"
  gem "rspec-rails", "1.2.9"
  gem "mongrel"
  gem "mysql"
  gem "populator"
end

group :staging do 
  gem "mongrel"
  gem "ruby-debug"
  gem "rails", "2.3.5"
  gem "inherited_resources", "1.0.2"
  gem "responders", "0.4.2"
  gem "activerecord-sqlserver-adapter", :path => "vendor/plugins/activerecord-sqlserver-adapter-1.0.0"
  gem "paperclip"
  gem "ferret"
  gem "crypt" # might need to install for system because of native dependencies
  gem "unobtrusive_date_picker", :path => "vendor/plugins/unobtrusive_date_picker"
  gem "acts_as_reportable"
  gem "will_paginate", :path => "vendor/plugins/will_paginate"
  gem "acts_as_transformer", :path => "vendor/plugins/acts_as_transformer"
  gem "acts_as_paranoid", :path => "vendor/plugins/acts_as_paranoid"
  gem "select_from_lookup", :path => "vendor/plugins/select_from_lookup"
  gem "pdfkit"
  gem "wirble"
  gem "hirb"
  gem "dbi"
  gem "dbd-odbc"
  gem "geokit"
  gem "htmlentities"
end

group :test do
  gem "ZenTest"
end

控制台输出:

Fetching gem metadata from http://rubygems.org/...........
Fetching additional metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (10.1.1)
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374@global/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Installing ZenTest (4.9.5)
Using activesupport (2.3.5)
Using rack (1.0.1)
Using actionpack (2.3.5)
Using actionmailer (2.3.5)
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374@global/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]
Invalid gemspec in [/Users/imaginationplus/.rvm/gems/ruby-1.8.7-p374/specifications/ZenTest-4.9.5.gemspec]: Illformed requirement ["< 3.0, >= 1.8"]

active_scaffold at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/active_scaffold did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
  missing value for attribute summary
Using active_scaffold (1.0.0) from source at vendor/plugins/active_scaffold
Using activerecord (2.3.5)

activerecord-sqlserver-adapter at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/activerecord-sqlserver-adapter-1.0.0 did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
  ["README.rdoc", "LICENSE", "CHANGELOG.rdoc"] are not files
Using activerecord-sqlserver-adapter (1.0.0) from source at vendor/plugins/activerecord-sqlserver-adapter-1.0.0
Using activeresource (2.3.5)

acts_as_paranoid at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/acts_as_paranoid did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
  missing value for attribute summary
Using acts_as_paranoid (1.0.0) from source at vendor/plugins/acts_as_paranoid
Using fastercsv (1.5.5)
Using color (1.5.1)
Using transaction-simple (1.4.0.2)
Using pdf-writer (1.1.8)
Using ruport (1.6.3)
Using acts_as_reportable (1.1.1)

acts_as_transformer at /Users/imaginationplus/gitlocal/cpo-core/vendor/plugins/acts_as_transformer did not have a valid gemspec.
This prevents bundler from installing bins or native extensions, but that may not affect its functionality.
The validation message from Rubygems was:
  ["README.rdoc", "LICENSE", "CHANGELOG.rdoc"] are not files
Using acts_as_transformer (1.0.0) from source at vendor/plugins/acts_as_transformer
Using cgi_multipart_eof_fix (2.5.0)
Using cocaine (0.4.2)
Using columnize (0.3.6)
Using crypt (1.1.4)
Using daemons (1.1.9)
Using deprecated (2.0.1)
Using dbi (0.4.5)
Using dbd-odbc (0.2.5)
Using fastthread (1.0.7)
Using ferret (0.11.8.5)
Using gem_plugin (0.2.3)
Using multi_json (1.8.4)
Using geokit (1.8.4)
Using has_scope (0.5.1)
Using hirb (0.7.1)
Using htmlentities (4.3.1)
Using responders (0.4.2)
Using inherited_resources (1.0.2)
Using jeremyevans-exception_notification (1.0.20100406) from source at vendor/plugins/exception_notification
Using rbx-require-relative (0.0.9)
Using linecache (0.46)

Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occurred while installing mime-types (2.1), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.1'` succeeds before bundling.

2 个答案:

答案 0 :(得分:1)

如果你升级到 OSX 10.9 Mavericks ,这可能是由以前安装了ruby 1.8的旧版Bundler的剩余可执行文件引起的,因为还没有为ruby 2.0安装bundler。

通过安装bundler修复它:

sudo gem install bundler

这是一个完整的调查,证实这确实是导致问题的原因:

$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Installing mime-types (2.3) 
Gem::InstallError: mime-types requires Ruby version >= 1.9.2.
An error occured while installing mime-types (2.3), and Bundler cannot continue.
Make sure that `gem install mime-types -v '2.3'` succeeds before bundling.

$ gem contents bundler
Unable to find gem 'bundler' in default gem paths

Directories searched:
/Library/Ruby/Gems/2.0.0/specifications
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0/specifications
/Users/yourusername/.gem/ruby/2.0.0/specifications

$ head -n1 $(which bundler)
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

$ sudo gem install bundler
sudo gem install bundler
Fetching: bundler-1.6.3.gem (100%)
Successfully installed bundler-1.6.3
Parsing documentation for bundler-1.6.3
Installing ri documentation for bundler-1.6.3
1 gem installed

$ head -n1 $(which bundle)
#!/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby

$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Installing mime-types 2.3
Using bundler 1.6.3
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

答案 1 :(得分:0)

要解决此错误,请升级项目的ruby版本或安装最新的Bundler for Ruby <1.9.2:

gem install bundler -v=1.17.3

或者使用基于您的ruby版本的一些较旧的受支持的bundler版本在gems on rails项目中安装gem。