2013-06-26 3 views
3

Я пытаюсь установить приложение для рельсов на второй компьютер. Но когда я бегу bundle install я получаю сообщение об ошибке с JSon перл:Невозможно установить json 1.8 gem в Mac OS X 10.8.4

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb 
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D (-h will show valid options) (RuntimeError) 


Gem files will remain installed in /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0 for inspection. 
Results logged to /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generator/gem_make.out 

An error occurred while installing json (1.8.0), and Bundler cannot continue. 
Make sure that `gem install json -v '1.8.0'` succeeds before bundling. 

Компьютер работает Mac OS X 10.8.4 с Xcode 4.6.3 и последними инструментами командной строки.

Я установил последний рубин с помощью RVM:

$ rvm -v 

rvm 1.21.2 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/] 

$ ruby -v 
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.0] 
$ gem -v 
2.0.3 

Когда я пытаюсь установить JSon камень с помощью gem install json я получаю почти ту же ошибку:

Building native extensions. This could take a while... 
ERROR: Error installing json: 
    ERROR: Failed to build gem native extension. 

    /Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb 
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D (-h will show valid options) (RuntimeError) 


Gem files will remain installed in /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0 for inspection. 
Results logged to /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generator/gem_make.out 

Попытки установить с помощью sudo не что-нибудь изменить.

Я удалил и переустановил homebrew, rvm, ruby ​​& инструменты командной строки, но ничего не помогает.

Update

Contentent из /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generato‌​r/gem_make.out:

/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby extconf.rb 
/Users/feuerball/.rvm/rubies/ruby-2.0.0-p195/bin/ruby: invalid option -D (-h will show valid options) (RuntimeError) 

НКУ Версия:

$ gcc -v 
Using built-in specs. 
Target: i686-apple-darwin11 
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1 
Thread model: posix 
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 

Update 2

я сделал новую установку OS X, Xcode, инструментов командной строки, Homebrew, rvm и Ruby. Ruby теперь находится на уровне исправления 247, и чертовски проблема все еще существует. Что это пустая трата времени ... Если это важно: РВМ установлен JSON 1.7.7 вместе с рубином

Update 3

Кажется, что моя машина не на все родные расширения. gem install bcrypt-ruby дает такое же сообщение об ошибке.

+0

Не могли бы вы представить содержимое /Users/feuerball/.rvm/gems/ruby-2.0.0-p195/gems/json-1.8.0/ext/json/ext/generator/gem_make.out – Remear

+0

Поскольку оно содержит только 2 строки, я вставил его в исходное сообщение. – stevecross

+0

В этот момент у меня есть какая-то потеря. У меня точно такая же настройка, как и вы, и установка json gem без проблем. rvm 1.21.2, gem 2.0.3, ruby ​​2.0.0p195 (версия для печати 2013-05-14 40734) [x86_64-darwin12.3.0]. Каков результат работы gcc -v на вашем компьютере? – Remear

ответ

6

Проблема заключалась в том, что моя домашняя папка находится на отдельном томе, в котором содержится пространство в его названии. Из-за пробела вторая часть имени была интерпретирована как опция. Название тома было что-то вроде My Data, и таким образом я получил сообщение invalid option -D.

Я только что переименовал этот том, и теперь все устанавливается нормально.

+0

Такая же проблема здесь ... Спасибо! –

+1

те же проблемы. в основном пакет не смог обрабатывать пространство в имени пути, приводит к неправильному анализу аргументов. таких как стыд. – kureikain

-1

Это, кажется, все еще будет ошибкой ... https://github.com/flori/json/issues/163

только вызвали пачку. Можете ли вы попробовать установить gem gem? Это может решить проблему после.

+0

Как я написал 'gem install json' тоже не работает. Также 'sudo' ничего не меняет. – stevecross

+3

Просто FYI, НИКОГДА не используйте sudo с rvm. – Remear

1

Это, похоже, произошло с версиями Json 1.8.0 и 1.8.1 (Ruby 2.2.3) ... Я смог без проблем обновить до 1.8.2 и 1.8.3 ... с указанием этих версий

gem 'json', '~> 1.8.2' 

В моей комплектации я столкнулся с проблемой.

+0

Это не решит проблему, потому что она не была вызвана драгоценным камнем json. – stevecross