Когда я пытаюсь установить sudo gem json, я получаю следующую ошибку - PullRequest
28 голосов
/ 17 апреля 2009

Мне нужно установить гем JSON для запуска моего приложения, но я получаю сообщение об ошибке ниже всякий раз, когда пытаюсь установить гем json. Может кто-нибудь мне помочь. Я использую рельсы 2.2.2 и самоцветы 1.3.1.

Arions-macbook-pro:.ssh arion$ sudo gem install json
Password:
Sorry, try again.
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing json:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb install json
can't find header files for ruby.


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.1.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.1.4/ext/json/ext/parser/gem_make.out

Ответы [ 10 ]

20 голосов
/ 23 октября 2013

С Mavericks вы можете решить эту проблему, установив инструменты командной строки Xcode из командной строки следующим образом:

xcode-select --install

Обновление: Не забудьте принять лицензионное соглашение после установки или обновления:

sudo xcodebuild -license

13 голосов
/ 17 апреля 2009

Вам не хватает заголовков разработки ruby. Чтобы установить их на ОС типа Ubuntu, вы должны использовать:

aptitude install ruby1.8-dev
13 голосов
/ 06 сентября 2012

Если у вас есть эта проблема:

ERROR:  Error installing json:
ERROR: Failed to build gem native extension.

и вы используете Mac с OS X (протестировано с 10.8.1 Mountain Lion), вам нужно скачать Xcode из Mac App Store (или с developer.apple.com, если у вас есть учетная запись dev - это бесплатно BTW и вы можете скачать установщик DMG)

Последние версии XCode (я использую XCode 4.4.1) НЕ включают инструменты командной строки. Теперь вам нужно установить этот дополнительный пакет внутри XCode. После этого ваша проблема будет исправлена.

Для этого откройте Xcode, перейдите в «Настройки»> «Загрузки»> «Компоненты». Установите «Инструменты командной строки». Вы сделали Теперь вы можете установить json Ruby gem.

enter image description here

4 голосов
/ 17 апреля 2009

Заголовки ruby ​​не устанавливаются вместе с базовой установкой ruby ​​с Mac OS X. Их можно найти на установочном диске Mac OS X 2, установив XCode Tools.

После установки все было хорошо!

ОБНОВЛЕНИЕ По крайней мере, с OS X 10.7.3 это больше не проблема, это "просто работает"

MacBook-Pro:tmp$ sudo gem install json
Password:
Building native extensions.  This could take a while...
Successfully installed json-1.6.5
1 gem installed
Installing ri documentation for json-1.6.5...
Installing RDoc documentation for json-1.6.5...
MacBook-Pro:tmp$ uname -a
3 голосов
/ 17 апреля 2009

Установка инструментов командной строки Xcode ... должна решить эту проблему.

2 голосов
/ 27 февраля 2012

Оказывается, для некоторых драгоценных камней требуются некоторые заголовочные файлы ruby ​​для правильной установки. Эти заголовочные файлы не поставляются с Lion (OSX 10.7).

Также выясняется, что Xcode 4 (последняя версия) также не устанавливает эти файлы заголовков. Я попробовал это.

Решение - Предполагается, что вы работаете в Mac OS X (похоже, вы используете вывод терминала). Чтобы заставить его работать, я установил gcc с некоторыми инструментами разработчика со следующей страницы

  • Визит https://github.com/kennethreitz/osx-gcc-installer
  • Прокрутите вниз до README и загрузите соответствующий пакет (для OSX 10.7 или 10.6)
  • Откройте файл .pkg и запустите программу установки.

Теперь вы сможете установить драгоценные камни, используя gem install или bundle install.

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

  • gcc - полезно
  • make - полезно
  • clang - полезно для ObjectiveC
  • Инструменты разработчика CLI (очистка и т. Д.) - полезно?
  • DevSDK (заголовки и т. Д.) - что вам нужно
2 голосов
/ 18 апреля 2009

Простой поиск в Google показывает это:

Если при попытке создать расширение или гем вы получите сообщение о невозможности найти заголовочные файлы для ruby, это означает, что Ruby не может найти свои заголовочные файлы.

Файлы заголовков не доставляются по умолчанию в Mac OS X, вам необходимо установить пакет Xcode Tools после установки. Вы можете найти его в каталоге Optional Installs / Xcode Tools на Leopard DVD.

0 голосов
/ 08 января 2013

Если вы используете homebrew, запустите brew doctor. Вы можете обнаружить, что необходимые для компиляции библиотеки gcc устарели и / или отсутствуют.

Warning: No compiler found in /usr/bin!
Warning: Your Xcode (4.2) is outdated

checking for gcc... /Developer/usr/bin/llvm-gcc
checking whether the C compiler works... no
configure: error: in `/private/tmp/freexl-apNF/freexl-1.0.0d':
configure: error: C compiler cannot create executables

Для пользователей Lion и Mountain Lion, Apple теперь предоставляет официальный пакет инструментов командной строки для пакета Xcode, который вы можете установить без необходимости установки самого Xcode! Вы можете скачать его с сайта разработчика Apple https://developer.apple.com/downloads/index.action. Если вам все еще нужен gcc-4.2 и вы используете Homebrew, вы можете установить его с помощью пакета apple-gcc42 из homebrew / dupes.

0 голосов
/ 13 ноября 2012

Вот мое решение:

rvm gem install json -v=xxx

Моя настройка:

OSX Lion
ruby-1.9.3
rvm
gcc-4.2 #=> honestly haven't seen that it's been used
0 голосов
/ 04 декабря 2011

У меня была такая же проблема.

Вот мои приключения (надеюсь, это будет полезно):

Чтобы исправить это, я сделал много манипуляций: -)

Я использую Fedora Core. Я исправил это так:

Я установил rails-devel:

sudo yum install rails-devel

попробовал еще раз:

рельсы для установки самоцветов

но у меня есть другая проблема:

Создание собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка при установке rails: ОШИБКА: не удалось собрать собственное расширение gem.

    /usr/bin/ruby extconf.rb creating Makefile

сделать gcc -I. -I / USR / Lib / рубин / 1,8 / i386-Linux -I / usr / lib / ruby ​​/ 1.8 / i386-linux -I. -D_FILE_OFFSET_BITS = 64 -fPIC -O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE = 2 -fexceptions -fstack-protector --param = ssp-buffer-size = 4 -m32 -march = i686 -mtune = atom -fasynchronous -unwind-таблицы -fno-строгого псевдонима -fPIC -O3 -Wall -c parser.c make: gcc: Команда не найдена

Итак, я установил GCC:

sudo yum install gcc

попробовал еще раз:

рельсы для установки самоцветов

Теперь у меня другая проблема))):

Установка документации ri для json-1.6.3 ... ОШИБКА: во время генерации документация для json-1.6.3 ... СООБЩЕНИЕ: нет такого файла для загрузки - irb / slex ... RDOC args: --ri --op /usr/lib/ruby/gems/1.8/doc/json-1.6.3/ri --title реализация JSON для Ruby --основная README.rdoc ext / json / ext ext lib README.rdoc --title Документация json-1.6.3 --quiet

Так установлен ruby-irb:

sudo yum install ruby-irb

попробовал еще раз:

рельсы для установки самоцветов

Успешно установленные рельсы-3.1.3

Вот и все)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...