2012-05-13 13 views
15

私は開発のために私のMacをセットアップし、この正確なgemfileを以前使用していました。私は何が間違っているのか分かりません。あなたのGemfileにエラーがあり、Bundlerは続行できません

Victorias-MacBook-Pro:sample_app Victoria$ bundle --without production 
/Users/Victoria/Sites/sample_app/Gemfile:38:in `evaluate': compile error 
/Users/Victoria/Sites/sample_app/Gemfile:28: syntax error, unexpected ':', expecting kEND 
    gem 'cucumber-rails', '1.2.1', require: false 
             ^(SyntaxError) 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/definition.rb:18:in `build' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler.rb:135:in `definition' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/cli.rb:220:in `install' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/task.rb:22:in `send' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/task.rb:22:in `run' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor.rb:263:in `dispatch' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/vendor/thor/base.rb:386:in `start' 
     /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/bin/bundle:13 
     /usr/bin/bundle:19:in `load' 
     /usr/bin/bundle:19 
There was an error in your Gemfile, and Bundler cannot continue. 

これは、あなたがルビー1.8と構文attribute:を実行しているgemfile

source 'https://rubygems.org' 

gem 'rails', '3.2.3' 
gem 'jquery-rails', '2.0.0' 
gem 'bootstrap-sass', '2.0.0' 
gem 'bcrypt-ruby', '3.0.1' 
gem 'faker', '1.0.1' 
gem 'will_paginate', '3.0.3' 
gem 'bootstrap-will_paginate', '0.0.5' 

group :development, :test do 
    gem 'mysql2' 
    gem 'rspec-rails', '2.9.0' 
    gem 'guard-rspec', '0.5.5' 
end 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '3.2.4' 
    gem 'coffee-rails', '3.2.2' 
    gem 'uglifier', '1.2.3' 
end 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '1.4.0' 
    gem 'cucumber-rails', '1.2.1', require: false 
    gem 'database_cleaner', '0.7.0' 
    gem 'guard-spork', '0.3.2' 
    gem 'spork', '0.9.0' 
    # gem 'rb-fsevent', '0.4.3.1', require: false 
    # gem 'growl', '1.0.3' 
end 

group :production do 
    gem 'pg', '0.12.2' 
end 
+0

ありがとう私はこれに新しいです – SilverNightaFall

+0

あなたはどのバージョンのルビーを使用しますか? – caulfield

答えて

23

では、Ruby 1.9が必要です。あなたは

gem 'cucumber-rails', '1.2.1', :require => false 

やRuby 1.9(多分RVMやrbenvを使用)をインストールする

gem 'cucumber-rails', '1.2.1', require: false 

を変更して再度bundle installを実行する必要があります。新しいプロジェクトの場合、これはもっと良い選択肢になります。

+0

どうしてですか? – SilverNightaFall

+8

シバンで 'bundle'実行可能ファイルにシステムのルビー(1.8)がないことを確認してください。チェックするには 'cat $(束にする)'をしてください。これは私がsystem ruby​​を使ってbundlerをインストールした後、RVM経由でruby 1.9にインストールしたときに起こったことです。 – Zubin

+0

私はZubinと同じ問題を抱えていました。このボックスには、システムのルビーを使っている間に、何人かの人がさまざまな宝石セットでバンドラを何回かインストールしていました。私は使用していたgemsetからアンインストールし、グローバルgemsetに切り替えてもう一度アンインストールしなければならなかった。 "bundler"を実行した後に、 "bundler is not installed"メッセージが表示され、正しいgemsetに再度切り替え、gem install bundler 。これが将来誰かに役立つことを願っています。 – XP84

14

Ruby/Rails環境を更新した後も同じエラーが発生しました。

gem update bundlerを固定しました。

+0

奇妙なことに、これは私にとってそれを解決しました。 –

+0

私のために働いた! –

1

rvmの使用中に同様の問題が発生しました。

rvm(端末内)で使用しているレールのバージョンを確認してください: ruby​​ -v(私の場合は、バージョンがruby 1.8.7に設定された新しい端末を開きました。そうでないかもしれません)

適切なルビーバージョンに切り替えます(私の場合、ルビー2.1.1、あなたのものはそうでないかもしれません): rvm 2.1.1(ルビーバージョンを2.1.1に設定します。プロジェクトのルビーXXX)

試し再実行されているバンドルチェック: バンドルチェック

ヨuは取得する必要があります: Gemfileの依存関係は満たされています

0

上記の回答は私にとってはうまくいかなかったが、Gemfileのカピストラーノの宝石をコメントアウトした。

0

RVMを使用している場合は、使用しているGemset:rvm currentを確認してください。

たとえば、systemと表示されている場合は、正しいジェムセットを選択する必要があります。何が呼び出されたか覚えていない場合はrvm list gemsetsを使用し、rvm use [correct gemset]を使用して正しいジェムセットを選択してください。

関連する問題