rails 5.0.0 при установке nio4r: не удалось создать собственное расширение gem

Вот журналы: http://pastebin.com/CAgur9xd

Installing nio4r 1.2.1 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    C:/RailsInstaller/Ruby2.2.0/bin/ruby.exe -r ./siteconf20160720-8272-c88sgk.rb extconf.rb --with-cflags=-std=c99
checking for unistd.h... *** 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=C:/RailsInstaller/Ruby2.2.0/bin/$(RUBY_BASE_NAME)
C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:587:in `try_cpp'
         from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:1060:in `block in have_header'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:911:in `block in checking_for'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:351:in `block (2 levels) in postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:321:in `open'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:351:in `block in postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:321:in `open'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:347:in `postpone'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:910:in `checking_for'
        from C:/RailsInstaller/Ruby2.2.0/lib/ruby/2.2.0/mkmf.rb:1059:in `have_header'
        from extconf.rb:3:in `<main>'

extconf failed, exit code 1

при установке пакета он возвращается (начинается со строки 117 в журналах):

Installing nio4r 1.2.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

Таким образом, пакет не может быть установлен. Он возвращается в конце:

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

Примечание. Я пробовал решения в других вопросах, но они все те же. Если можно установить "nio4r" вручную, скажите, пожалуйста, как.


person Mfms99    schedule 20.07.2016    source источник
comment
gem install nio4r -v '1.2.1' запустите и / это решит вашу ошибку   -  person Vishal    schedule 20.07.2016
comment
он возвращает это: pastebin.com/czfiV0Gb   -  person Mfms99    schedule 20.07.2016
comment
Задавая вопросы, пожалуйста, всегда включайте полный журнал ошибок непосредственно в вопрос. Пожалуйста, не ссылайтесь на внешние сайты с пирогами, так как журналы там, как правило, быстро исчезают, что делает вопрос менее полезным в будущем.   -  person Holger Just    schedule 20.07.2016


Ответы (10)


Я столкнулся с той же проблемой, когда пытался обновить Rails до V5.0.0, я следую этой инструкции, и она работает отлично. Прочтите раздел «Установка Ruby DevKit» здесь >> http://jekyll-windows.juthilo.com/1-ruby-and-devkit/

person Melvin    schedule 21.07.2016
comment
я не могу отблагодарить вас, мой друг, некоторые люди говорили мне раньше о DevKit, но без инструкций, поэтому я не мог согнуть его на рубин. конечно были и другие проблемы, но сейчас они решены. еще раз спасибо - person Mfms99; 22.07.2016
comment
Перейдите на Ruby 2.2.5, если у вас возникли проблемы. В моем случае Rails 5.0.0 плохо работает с Ruby 2.3.1. - person Melvin; 22.07.2016
comment
@MelvinCh'ng У меня также проблемы с Rails 5 + Ruby 2.3.1 и некоторыми драгоценными камнями (nio4r, pg, puma, websocker-driver). Это известная проблема? - person Jonathan Soifer; 02.11.2016
comment
@JonathanSoifer Если у вас возникли проблемы с Windows, рекомендуется понизить версию Ruby до 2.2.3. У многих людей возникают проблемы при запуске Ruby 2.3.1 в Windows. Последняя версия Ruby хорошо работает на Mac. - person Melvin; 06.11.2016
comment
@MelvinCh'ng Мак :) - person Jonathan Soifer; 06.11.2016

Решение для Fedora 64bit

sudo dnf install redhat-rpm-config
person lord5et    schedule 29.06.2017

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

bundle config build.nio4r --with-cflags="-std=c99"

Теперь вы можете успешно запустить bundle install впоследствии.

person techdreams    schedule 22.05.2017

Я столкнулся с этой проблемой, когда тоже устанавливал рельсы. (ищу альтернативу php).

  • Я понял, что установил x86 ruby ​​​​с x64 Devkit, поэтому сначала я загрузил x64 ruby, который я установил, и удалил версию x86. Я убедился, что мои переменные пути правильно установлены.
  • Затем я установил devkit, следуя инструкциям на этой странице http://rubyonwindowsguides.github.io/book/ch02-04.html
  • Наконец, я установил рельсы, и на этот раз все работало без ошибок.

Надеюсь это поможет

person Hezzy Okello    schedule 23.07.2016
comment
Я сделал это по-другому..! установил x64 ruby ​​​​с x32 devkit, понял это только тогда, когда попытался посмотреть драгоценные камни в их каталоге для проверки, и спас мой день :) - person Saravanabalagi Ramachandran; 24.11.2016

Мой сын решил эту проблему для меня. Проблема заключалась в том, что я сначала установил Ruby, а затем установщик Rails. Поэтому мне пришлось удалить Ruby и переустановить только с помощью установщика Rails.

person David Hernandez    schedule 21.01.2017
comment
лол пробовал разные вещи в течение 2 часов, и это было решением. ???? Молодец мальчик! - person Jimbali; 28.04.2017

Была такая же проблема на Ubuntu 16.04. Что я сделал, чтобы исправить это:

Удалите Gemfile.lock: sudo rm Gemfile.lock Установленный Ruby-Dev:

sudo apt-add-repository ppa:brightbox/ruby-ng sudo apt-get update sudo apt-get install ruby2.4-dev

и важный шаг: ПЕРЕЗАГРУЗКА!

person keke    schedule 04.07.2017

это может быть связано с: ошибка компиляции GCC при установке Nokogiri

Я нашел ошибку. в моей системе было установлено 2 версии gcc, и я просто запустил brew unlink gcc, и это решило проблему.

это был и мой случай. benw unlink gcc работал

person equivalent8    schedule 10.02.2021

Удалите Gemfile.lock и запустите команду установки пакета.

person Hemanthkumar Naik    schedule 20.07.2016
comment
Это крайне не рекомендуется. Это может привести к обновлению драгоценных камней, которые вы не хотите. - person gizotti; 23.12.2016
comment
Обновление gem nio4r с версии 2.0.0 до версии 2.1.0 решило проблему для меня. - person Grilse; 12.06.2017
comment
Чтобы расширить комментарий @gizotti, Gemfile.lock — это файл, в котором хранится дерево зависимостей гема и точные версии каждого гема, используемого в вашем проекте. Если Gemfile — это рецепт, Gemfile.lock — это торт, который вы испекли по этому рецепту. Если вы удалите его, Bundler создаст новый на основе вашего Gemfile, что означает, что вы можете получить разные версии любого драгоценного камня в дереве вашего проекта. Для серьезных проектов это означает множество тестов и проверок, а не то, что вы хотите «просто сделать». В любом случае, вы можете добиться того же, запустив bundle update. - person Ben Hull; 03.12.2018
comment
@BenHull этот комментарий - лучший текст о файлах блокировки, который я когда-либо читал - person Даниил Пронин; 12.02.2020

Чтобы процитировать ваш вывод журнала:

Компилятору не удалось сгенерировать исполняемый файл. (RuntimeError) Сначала необходимо установить средства разработки.

В Windows вам необходимо установить DevKit, чтобы иметь возможность компилировать gems.

person Holger Just    schedule 20.07.2016
comment
я установил его и запустил установку и отметил все в настройке, но когда она закончилась, и я попробовал еще раз, это дало мне тот же результат. я сделал что-то не так при установке DefKit? - person Mfms99; 20.07.2016
comment
я должен установить определенную версию DefKit? я установил версию 2.2.5 - person Mfms99; 20.07.2016

Если вы используете Windows и установили ruby ​​с помощью RubyInstaller версии более или равной 2.4, вам не следует устанавливать DevKit с веб-сайта RubyInstaller, а использовать только «msys64», который устанавливается после Ruby с помощью RubyInstaller (убедитесь, что вы вводите номер 3, чтобы установить оба msys). и мингв). Удалите каталог devkit и его путь из переменной среды PATH, поэтому, когда rubygems попытается установить nio4r и вызвать компиляторы C, он вызовет компиляторы msys. Читайте здесь https://rubyinstaller.org/2017/05/25/rubyinstaller-2.4.1-1-released.html для получения дополнительной информации о MSYS2 и DevKit в RubyInstaller

person SkipIntro    schedule 26.09.2017