Для контекста, это на удаленном сервере, который имеет брандмауэр. Я настраиваю свою среду через прокси. У меня есть ruby 1.8.7
. Когда я пытаюсь установить самоцвет ..
sudo gem install --http-proxy <host address>:<port> json
Я получаю следующую ошибку:
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
Gem files will remain installed in /usr/lib64/ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
Так как я не был уверен, в чем проблема, я погуглил и нашел эти
установка gem: не удалось создать собственное расширение gem (не удается найти файлы заголовков) - здесь приведены инструкции, относящиеся к устанавливаемому гему.
Как установить json gem - Не удалось собрать собственное расширение gem Это, похоже, немного другая ошибка.
Есть намеки? Спасибо!
/usr/lib/ruby/ruby.h
файла, если он есть, показать нам сообщение об ошибке отgem_make.out
.Ответы:
Современное обновление эпохи, как утверждает Миморалеа :
или, общий способ:
Первая ссылка, которую вы разместили, - это как раз ваш случай: не установлена среда разработки ruby. Разработка env необходима для компиляции расширений ruby, которые в основном написаны на
C
. Прокси не имеет ничего общего с проблемой: все загружается нормально, просто компиляция не удалась.Я бы посоветовал вам установить
ruby-dev
(ruby-devel
для дистрибутивов на основе rpm) пакет на целевой компьютер.gcc
пакет может быть необходимо.Пытаться:
Или для Redhat дистрибутив:
Или, для [open] SuSE:
источник
ruby-dev
своейruby-devel
. Вот где я нашел то , что именно нужно - digitalocean.com/community/articles/...sudo zypper install ruby-devel
для openSUSEruby2.2-dev
(или какая версия установлена у вас).Для Xcode 11 на macOS 10.14 это может произойти даже после установки Xcode и установки инструментов командной строки и принятия лицензии с
Проблема в том, что Xcode 11 поставляется с MacOS 10.15 SDK, который включает заголовки для ruby2.6, но не для ruby2.3 в macOS 10.14. Вы можете проверить, что это ваша проблема, запустив
который на macOS 10.14 с Xcode 11 печатает несуществующий путь
Однако Xcode 11 устанавливает macOS 10.14 SDK в
/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. Нет необходимости загрязнять системные каталоги, устанавливая старые заголовочные файлы, как указано в других ответах. Вместо этого, выбрав этот SDK, будут найдены соответствующие заголовки ruby2.3:Это должно теперь правильно напечатать
Аналогично,
gem install
должно работать, пока выбран этот SDK.Чтобы вернуться к текущему Xcode SDK, используйте
источник
В случае, если вы используете ruby 2.0 или 2.2 (спасибо @ patrick-davey) или 2.3 (спасибо @juanitofatas).
И вы получаете образец здесь ...
источник
sudo apt-get install ruby2.2-dev
E: Unable to locate package ruby2.2-dev
E: Couldn't find any package by regex 'ruby2.2-dev'
sudo apt-add-repository -y ppa:brightbox/ruby-ng && sudo apt-get update && sudo apt-get install -y ruby2.2-dev
Я также столкнулся с этой проблемой, потому что я устанавливал Ruby в Ubuntu через brightbox , и я думал, что ruby-dev - это ствол ruby. Поэтому я не установил. Установить ruby2.3-dev исправляет это:
источник
Для тех, кто получает это в Mac OS X, вам может потребоваться выполнить следующую команду для установки инструментов командной строки XCode, даже если у вас уже установлен XCode:
Также вы должны согласиться с условиями XCode, выполнив следующую команду:
источник
su - $USER -c 'xcode-select --install'
У меня была похожая проблема с использованием Cygwin для запуска следующей команды:
Я решил это, установив следующие пакеты cygwin:
источник
/cygdrive/z/.gem/ruby/extensions/x86-cygwin/json-1.8.3/json/ext/parser.so: [BUG] Segmentation fault at 0x0001b8
rm -rf ~/.gem/
и переиздав команду.ruby-dev
на малиновом пиРешение с наибольшим количеством голосов не работает на моей машине (Linux Mint 18.04). После тщательного изучения я обнаружил, что g ++ отсутствует. Решено с
источник
make
иg++
исправить мою проблему на Ubuntu 18.04 тоже!если вы используете SUSE
источник
sudo zypper in ruby-devel
.Xcode 11 / macOS Каталина
В Xcode 11 / macOS Catalina заголовочные файлы больше не находятся в старом расположении, а старый
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
файл больше не доступен.Вместо этого заголовки теперь устанавливаются в
/usr/include
каталог текущего пути SDK:Большую часть этого каталога можно найти с помощью вывода
xcrun --show-sdk-path
. И если вы добавите этот путь кCPATH
переменной среды, то создайте сценарии (включая те, которые вызываются черезbundle
), как правило, смогут найти его.Я решил это, установив мой
CPATH
в моем.zshrc
файле:После открытия новой оболочки (или запуска
source .zshrc
) я больше не получаю сообщение об ошибке mkmf.rb не может найти заголовочные файлы для ruby по адресу /usr/lib/ruby/ruby.h, и rubygems устанавливается правильно.источник
Mojave 10.14.6
иXCode 11.3.1
. Большое спасибо, мне понадобилось 1 день, чтобы решить эту проблему: /В Fedora 21 и выше вы просто открываете терминал и устанавливаете файлы Ruby Development от имени root.
источник
Вам может понадобиться установить gcc после установки ruby-devel
источник
Xcode -> Настройки -> Местоположения
измените инструменты командной строки на Xcode 11.2.1
источник
На Mac 10.14 файлы заголовков, похоже, не установлены в правильном месте. Вместо того, чтобы менять пути, как другие исправления, я смог просто запустить это:
Следуйте инструкциям, и это решило эту проблему для меня.
источник
Вам нужно установить весь ruby, а не только минимальный пакет. Правильная команда для использования:
Следующая команда также не установит полный ruby:
источник
Для Ubuntu 18, после проверки файла журнала, упомянутого при установке
Результаты заносятся в /var/canvas/vendor/bundle/ruby/2.5.0/extensions/x86_64-linux/2.5.0/nio4r-2.5.2/gem_make.out
с
Я заметил, что
make
не найден. Так установлено, сделанноевсе работало.
источник
попробуйте это для Ubuntu 16.04
источник