2015-09-13 3 views
7

Я знаю, что в Интернете есть куча вопросов или подобное, но это не подходит моему делу. Я устанавливаю Redmine, и когда я называю bundle install, я получаю эту ошибку:ошибка установки пакета, неожиданно ':'

[!] There was an error parsing `Gemfile`: compile error - syntax error, unexpected ':', expecting $end 
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin, :jruby] 
          ^. Bundler cannot continue. 

Ошибка на этой линии (одна префиксом ->):

source 'https://rubygems.org' 

    if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.5.0') 
    abort "Redmine requires Bundler 1.5.0 or higher (you're using #{Bundler::VERSION}).\nPlease update with 'gem update bundler'." 
    end 

    gem "rails", "4.2.3" 
    gem "jquery-rails", "~> 3.1.3" 
    gem "coderay", "~> 1.1.0" 
    gem "builder", ">= 3.0.4" 
    gem "request_store", "1.0.5" 
    gem "mime-types" 
    gem "protected_attributes" 
    gem "actionpack-action_caching" 
    gem "actionpack-xml_parser" 
    gem "loofah", "~> 2.0" 

    # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
-> gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin, :jruby] 
    gem "rbpdf", "~> 1.18.6" 

    # Optional gem for LDAP authentication 
    group :ldap do 
    gem "net-ldap", "~> 0.3.1" 
    end 

, как это сказано в так много других потоков, причиной может быть то, что этот код использует «новый» синтаксис хеша ruby ​​1.9. Однако, глядя на версии:

$ ruby -v 
ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu] 
$ gem -v 
2.2.2 
$ bundle -v 
Bundler version 1.10.6 
$ bundle exec ruby -v 
ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu] 
$ which bundler 
/usr/local/bin/bundler 

EDIT: как это было предложено Arsen, эта команда показывает, где проблема, я читал некоторую документацию о рубине и виртуальных средах, чтобы заставить его работать в правильном направлении:

$ bundle env 
Environment 

    Bundler 1.10.6 
    Rubygems 1.8.24 
    Ruby  1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] 
    Git  2.5.1 

Bundler settings 

    without 
     Set for your local app (/home/leo/http/redmine.leo-flaventin.com/redmine/.bundle/config): "development:test" 

Gemfile 
    [...] #The redmine Gemfile 

Тогда, я думаю, что драгоценный камень рубин с помощью 2.2 (но я не уверен), так что я думаю, что не должно быть никаких проблем, но так как я не знаю, рубиновый вселенной и есть на самом деле ошибка, я, конечно, ошибаюсь. Вот почему я прошу помощи сообщества ...

Значит, любые идеи о том, что происходит?

(я мог исправить файл, используя старый синтаксис хэш, но так как я хотел бы использовать последние версии, я думаю, что будет двигаться только проблема)

+0

Примечание: я разместил это здесь, так как я не думаю, что это проблема, связанная с redmine, но одна рубиновая версия –

+0

Используете ли вы RVM? И что дает вам 'bundle exec ruby ​​-v'? – wiesion

+0

'$ bundle exec ruby ​​-v' выходы:' ruby ​​2.1.5p273 (2014-11-13) [x86_64-linux-gnu] '(то же, что и' ruby ​​-v') Я добавил его в сообщение, так как это могло быть Соответствующий, ty :) –

ответ

0

Попробуйте добавить ruby "2.1.5" в Gemfile

Или просто используйте rbenv

+0

просто добавление 'ruby '2.1.5« 'в Gemfile не сработало, но теперь, когда я знаю, что в пакете действительно используется' 1.8', я запишусь для использования виртуального env :) –

1

Это старый вопрос, но поскольку он не решен, и я столкнулся с той же проблемой, я поделюсь своим решением.

Я установил ruby ​​через apt-get на моем сервере debian 7. При попытке запустить пакет установки я получил то же самое сообщение об ошибке, как указано выше:

Там была ошибка разбора Gemfile: Ошибка компиляции - синтаксис ошибка, неожиданный [!] «:», Ожидая $ конец

Мой soultion было установить рубин с помощью рубинового менеджера версий.

  1. Удалить рубин sudo apt-get remove ruby && sudo apt-get autoremove
  2. Установить рубин через рубин версия менеджера (РВМ) \curl -sSL https://get.rvm.io | sudo bash -s stable --rails
  3. Если 2. не удается, добавить подпись (как запрос) \curl -sSL https://get.rvm.io | sudo bash -s stable --rails
  4. Добавить пользователя в группу sudo usermod -aG rvm USERNAME && sudo usermod -aG rvm www-data
  5. Logout & login
  6. Повторно запустите команду bundle install
  7. Если у вас все еще есть проблемы, они должны быть применимы к приложениям. Для меня мне также пришлось установить sudo apt-get install libmysqlclient-dev.

Я видел это решение, следуя учебник по этому blog

0

это работал для меня, когда я получил ту же ошибку при установке нового приложения с рельсов 5:

gem install rails --version=5.0.0.1 

bundle install 

я не знаю, почему это сработало.

Смежные вопросы