ruby-debug Не удалось создать Makefile по какой-то причине, возможно, из-за отсутствия необходимых библиотек и/или заголовков

Мой Rails — 3.2.1.4, Ruby — 1.9.3p448.

У меня возникла ошибка при установке ruby-debug:

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

    /home/hxh/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb
Can't handle 1.9.x yet
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/hxh/.rvm/rubies/ruby-1.9.3-p448/bin/ruby


Gem files will remain installed in /home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46 for inspection.
Results logged to /home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46/ext/gem_make.out

Кто подскажет где ошибка?


person HXH    schedule 31.10.2013    source источник
comment
Обновление ruby ​​через brew install ruby исправило это для меня.   -  person Ashish Ahuja    schedule 22.03.2018


Ответы (12)


Ошибка в файле mkmf.log. Этот файл должен находиться по адресу /home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46/ext/linecache/mkmf.log.

Если нет, вы можете использовать

sudo find / -name mkmf.log

найти его.

Для дальнейшего устранения неполадок см. «Как установить гем Nokogiri Ruby с mkmf.log, говорящим, что libiconv не найден?"

person skibum55    schedule 06.12.2013
comment
Но что делать, если для рассматриваемого гема нет файла mkmf.log? Для меня есть файлы mkmf.log для многих других драгоценных камней, но не для того, с которым возникла проблема. - person levininja; 19.08.2016
comment
@levininja вы получили дополнительную информацию в сообщении об ошибке? внизу я получил To see why this extension failed to compile, please check the mkmf.log which can be found here: ..., за которым следует полный путь к конкретному файлу .log - person Owen; 18.09.2016
comment
Как я уже сказал, в указанном месте не было файла mkmf.log. Я думаю, что я закончил тем, что перезапустил все, и проблема исчезла. - person levininja; 19.09.2016

Я использую Mac El Capitan. В моем случае это было вызвано отсутствием инструмента разработчика. Я решил это, установив инструмент разработчика через xcode-select --install. После этого пакетная установка снова работала нормально.

person Guster    schedule 10.03.2016
comment
То же самое здесь, в Сьерре, и моей проблемной жемчужиной был Нокогири. - person Jacob Crofts; 17.08.2017

Скорее всего, вам не хватает некоторых заголовков файлов (например, zlib или libiconv), поэтому попробуйте их установить.

Линукс: sudo apt-get install libz-dev libiconv-hook1 libiconv-hook-dev

OS X: brew install libiconv && xcode-select --install

В противном случае проверьте свой файл mkmf.log для получения более подробной информации.

person kenorb    schedule 09.07.2016
comment
Или при использовании Alpine Linux: apk add -build-base - person Jimbali; 23.07.2019

Кажется, это проблема с разрешением gcc... однако, если вы используете OS X, вы можете столкнуться с этой проблемой, если вы обновили свой XCode, но еще не согласились с их условиями... попробуйте ввести gcc в вашем терминале покажет вам, что если вы согласились.

person songyy    schedule 28.09.2015

Мой mkmf.log показал, что gcc (кажется, 4.8.2) не понравился конкретный аргумент, который использовался atomic на

$ gem install atomic

Так что у меня была очень похожая ситуация. Ответ для меня состоял в том, чтобы обновить gcc/gcc-libs и инструмент lib.

Я использую Arch Linux и только Arch Linux. Правильный способ сделать это - запустить

$ sudo pacman -Syu

который обновляет все системные пакеты.

Я установил Rails и с тех пор не запускал обновление системы, откуда и возникла проблема. В большинстве других *nix-дистрибутивов вы должны обновить эти пакеты до последней версии по имени, то есть с помощью apt это будет что-то вроде

$ sudo apt-get update

с последующим

$ sudo apt-get upgrade {package-name}
person humbolight    schedule 11.11.2014
comment
Этот ответ можно улучшить, предоставив инструкции по обновлению этих библиотек. - person Dennis; 16.04.2015
comment
Я запускаю Arch Linux, который играет по своим собственным правилам во многих отношениях, включая управление пакетами, и я не могу с первого взгляда определить, какую операционную систему использует запрашивающий. - person humbolight; 01.05.2015
comment
gem install atomic сделал это за меня =) - person Starbax; 13.04.2017

Что бы это ни стоило, используя Ruby 2.0.0, у меня была эта проблема на OSX 10.10.

В итоге я запустил brew update, который разрешил некоторые конфликты, затем установил драгоценный камень, и все было в порядке.

person etusm    schedule 02.12.2014

Ответ kenorb работал у меня на Ubuntu 16.04, когда я пытался установить рельсы! Спасибо! Я выполнил следующие шаги для установки рельсов:

  1. sudo apt-get установить ruby-full
  2. sudo apt-get установить libz-dev libiconv-hook1 libiconv-hook-dev
  3. sudo gem установить рельсы
person heronsanches    schedule 13.11.2016
comment
столкнулся с той же проблемой в LinuxMint. Я могу установить рельсы после следования вашей инструкции. Спасибо1 - person BimoS; 25.12.2017

Я столкнулся с той же проблемой, и я работал с macOS Big Sur версии 11.1 и Xcode версии 12.4 (12D4e). В моем случае в Xcode не был выбран инструмент командной строки.

Я просто выполнил следующие шаги, чтобы исправить

  1. Запустить Xcode
  2. Открыть настройки (команда + ,)
  3. Выберите вкладку «Места»
  4. Выберите инструмент командной строки (Xcode 12.4 12D4E в моем случае)
  5. Запустите следующую требуемую команду (в моем случае sudo gem install cocoapods)

введите здесь описание изображения

person Usama Azam    schedule 29.01.2021
comment
Спасибо! это сработало для меня - person Johnatan Maciel; 28.06.2021

У меня возникла проблема, потому что gcc не было доступно на моей машине.

Исправил, установив gcc.

sudo apt install build-essential
person Floris Devreese    schedule 06.06.2020

Это сработало для меня. Проблема была в Нокогири.

Попробуйте следующее, если вы используете Alpine-Linux (или эквивалентную команду для вашей ОС)

apk add build-base

Затем установите nokogiri, как указано ниже.

gem install nokogiri -- --without-pkg-config --with-libxml-2.0-config
person Dhivya Dandapani    schedule 30.07.2020

так что у меня тоже была такая же проблема. Вероятно, это происходит из-за того, что на вашем компьютере установлена ​​более старая версия ruby. Итак, вам нужно сначала обновить свой ruby. Мой работал для версии ruby ​​​​2.6.3 или обновленной версии.

Вам нужно сначала открыть терминал и ввести этот код

curl -L https://get.rvm.io | bash -s стабильный

Затем введите эту команду

rvm установить рубин-2.6

Это установит рубин для вас, если он не был установлен. После этого просто обновите рубин до новой версии.

rvm использует ruby-2.6.3

Возможно, это решит вашу проблему. Теперь вы можете поместить команду

sudo gem установить Cocopods

И команда

установка модуля

Если rvm не установлен в вашей системе, используйте эту команду

$HOME/.rvm/скрипты/rvm

а потом

РВМ

Пожалуйста, дайте мне знать, если кто-то все еще сталкивается с проблемами.

person Vikash Sinha    schedule 26.02.2021

Проблема решается следующей командой: sudo apt install build-essential

person Ognjen Stanisavljevic    schedule 11.12.2020