Ошибка в вашем Gemfile, и Bundler не может продолжить
Я просто установил свой mac для разработки и ранее использовал этот точный gemfile, и он работал нормально. Я не уверен, что я делаю неправильно.
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.
Это 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
Ответы
Ответ 1
Вы используете Ruby 1.8, а синтаксис attribute:
требует ruby 1.9. Вам нужно будет изменить
gem 'cucumber-rails', '1.2.1', require: false
к
gem 'cucumber-rails', '1.2.1', :require => false
Или установите Ruby 1.9 (возможно, используя RVM или rbenv) и снова запустите bundle install
. Это будет гораздо более выгодным вариантом, если это новый проект.
Ответ 2
Я получил ту же ошибку после обновления моей среды Ruby/Rails.
gem update bundler
исправлено.
Ответ 3
У меня была аналогичная проблема при использовании rvm. Вот что сработало для меня:
Проверьте, какая версия рельсов используется с rvm (в терминале):
ruby -v (в моем случае был открыт новый терминал с версией, установленной на рубин 1.8.7, твой может не быть)
Переключитесь на правильную рубиновую версию (в моем случае это должен быть рубин 2.1.1, твой может не быть):
rvm 2.1.1 (это устанавливает рубиновую версию в 2.1.1, заменяет ваш проект ruby x.x.x)
Попробуйте выполнить повторную проверку пакетов:
проверка связи
Вы должны получить:
Зависимости Gemfile удовлетворяются
Ответ 4
Вышеупомянутые ответы не сработали для меня, но прокомментировали капринановые камни в Gemfile.
Ответ 5
Если вы используете RVM, проверьте, какой gemset вы используете: rvm current
.
Если он говорит, например, system
, вам может потребоваться выбрать правильный гемсет (я сделал). Используйте rvm list gemsets
, если вы не можете вспомнить, что он назвал, затем выберите правильный гемсет, используя rvm use [correct gemset]
.