ошибка в вашем Gemfile, и Bundler не может продолжить

Я просто настроил свой Mac для разработки и ранее использовал этот точный гемфайл, и он работал нормально. Я не уверен, что я делаю неправильно.

<code>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.
</code>

Это гемфайл

<code>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
</code>
 caulfield13 мая 2012 г., 21:11
Какую версию рубина вы используете?
 SilverNightaFall13 мая 2012 г., 21:07
спасибо, что я новичок в этом

Ответы на вопрос(5)

gem update bundler починил это

 Manuel Meurer12 дек. 2013 г., 19:25
Работал для меня !!
 Dirk Geurs04 нояб. 2013 г., 12:57
Как ни странно, это решило это для меня.

ботало для меня:

Проверьте, какую версию rails вы используете с rvm (в терминале): ruby -v (в моем случае открылся новый терминал с версией, установленной на ruby 1.8.7, ваша может не быть)

Переключитесь на правильную версию ruby (в моем случае это должна быть ruby 2.1.1, ваша может и не быть): rvm 2.1.1 (при этом для версии ruby устанавливается 2.1.1, замените ее ruby x.x.x вашего проекта)

Попробуйте повторно запустить проверку пакета: проверка пакета

Вы должны получить: зависимости Gemfile удовлетворены

но комментирование самоцветов капистрано в Gemfile сработало.

rvm current.

Если это говорит, например,system, вам может понадобиться выбрать правильный набор гемов (я так и сделал). Используйтеrvm list gemsets если вы не можете вспомнить, как он называется, выберите правильный набор гемов, используяrvm use [correct gemset].

Решение Вопроса

Вы используете 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 опять таки. Это было бы намного лучше, если бы это был новый проект.

 SilverNightaFall13 мая 2012 г., 21:12
Спасибо, мне было интересно, почему
 XP8412 янв. 2013 г., 02:15
У меня была та же проблема, что и у Зубина, на этой коробке кто-то несколько раз устанавливал компоновщик в разных наборах гемов, используя системный рубин. Мне пришлось удалить его из набора гемов, который я использовал, переключиться на глобальный набор гемов и снова удалить его, а затем после запуска «bundler» выдает сообщение «bundler is not install», снова переключиться на нужный набор гемов и установить gem install bundler , надеюсь, это пригодится кому-то в будущем.
 Zubin31 авг. 2012 г., 06:05
Убедитесь, чтоbundle исполняемого файла @ нет системного ruby (который равен 1.8) в shebang. Делатьcat $(which bundle) Проверять. Это случилось со мной, когда я установил пакет с помощью системного ruby, а затем установил его через RVM в ruby 1.9.
 abbood08 дек. 2013 г., 06:22
@ XP84 что вы, ребята, подразумеваете под "системным рубином"? сколько там видов рубина?
 deviousdodo09 дек. 2013 г., 00:38
@ abbood, если вы находитесь на другом рубине, просто установите пакет заново для этого рубина, чтобы решить эту проблему. Если вы используете rbenv, это просто означаетgem install bundler && rbenv rehash. Если вы используете RVM, вы, вероятно, используете наборы гемов, и установка его для этого набора должна помочь. Если это не поможет, лучше напишите новый вопрос.

Ваш ответ на вопрос