Ошибка при установке Rails 6.0.0: не удалось создать собственное расширение gem
Я впервые пытаюсь установить Ruby и Rails, но не могу правильно установить Rails v6. Моя машина - Windows 10. У меня Ruby 2.6.5p114 и RubyGems 3.0.6. Пытаюсь установить rails 6.0.0. Мой терминал показывает, что установка идет гладко, пока он не попытается создать собственные расширения. Интересно, пытаюсь ли я установить неправильные версии Ruby, Rails или RubyGems? Вот полная командная строка с ошибкой внизу -
d:\>gem install rails -v 6.0.0
Fetching concurrent-ruby-1.1.5.gem
Fetching i18n-1.7.0.gem
Fetching thread_safe-0.3.6.gem
Fetching tzinfo-1.2.5.gem
Fetching zeitwerk-2.2.0.gem
Fetching activesupport-6.0.0.gem
Fetching rack-2.0.7.gem
Fetching rack-test-1.1.0.gem
Fetching mini_portile2-2.4.0.gem
Fetching nokogiri-1.10.4-x64-mingw32.gem
Fetching crass-1.0.4.gem
Fetching loofah-2.3.0.gem
Fetching rails-html-sanitizer-1.3.0.gem
Fetching rails-dom-testing-2.0.3.gem
Fetching builder-3.2.3.gem
Fetching erubi-1.9.0.gem
Fetching actionview-6.0.0.gem
Fetching actionpack-6.0.0.gem
Fetching activemodel-6.0.0.gem
Fetching activerecord-6.0.0.gem
Fetching globalid-0.4.2.gem
Fetching activejob-6.0.0.gem
Fetching mini_mime-1.0.2.gem
Fetching mail-2.7.1.gem
Fetching actionmailer-6.0.0.gem
Fetching nio4r-2.5.2.gem
Fetching websocket-extensions-0.1.4.gem
Fetching websocket-driver-0.7.1.gem
Fetching actioncable-6.0.0.gem
Fetching mimemagic-0.3.3.gem
Fetching marcel-0.3.3.gem
Fetching activestorage-6.0.0.gem
Fetching rails-6.0.0.gem
Fetching actionmailbox-6.0.0.gem
Fetching actiontext-6.0.0.gem
Fetching thor-0.20.3.gem
Fetching method_source-0.9.2.gem
Fetching railties-6.0.0.gem
Fetching sprockets-4.0.0.gem
Fetching sprockets-rails-3.2.1.gem
Successfully installed concurrent-ruby-1.1.5
HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.
Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.
For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
Successfully installed i18n-1.7.0
Successfully installed thread_safe-0.3.6
Successfully installed tzinfo-1.2.5
Successfully installed zeitwerk-2.2.0
Successfully installed activesupport-6.0.0
Successfully installed rack-2.0.7
Successfully installed rack-test-1.1.0
Successfully installed mini_portile2-2.4.0
Nokogiri is built with the packaged libraries: libxml2-2.9.9, libxslt-1.1.33, zlib-1.2.11, libiconv-1.15.
Successfully installed nokogiri-1.10.4-x64-mingw32
Successfully installed crass-1.0.4
Successfully installed loofah-2.3.0
Successfully installed rails-html-sanitizer-1.3.0
Successfully installed rails-dom-testing-2.0.3
Successfully installed builder-3.2.3
Successfully installed erubi-1.9.0
Successfully installed actionview-6.0.0
Successfully installed actionpack-6.0.0
Successfully installed activemodel-6.0.0
Successfully installed activerecord-6.0.0
Successfully installed globalid-0.4.2
Successfully installed activejob-6.0.0
Successfully installed mini_mime-1.0.2
Successfully installed mail-2.7.1
Successfully installed actionmailer-6.0.0
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
Successfully installed nio4r-2.5.2
Successfully installed websocket-extensions-0.1.4
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
D:/Program\ Files/Ruby26-x64/bin/ruby.exe -I D:/Program\ Files/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20191012-5104-nq808.rb extconf.rb
creating Makefile
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
make "DESTDIR=" clean
Makefile:269: *** multiple target patterns. Stop.
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
make "DESTDIR="
Makefile:269: *** multiple target patterns. Stop.
make failed, exit code 2
Gem files will remain installed in D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1 for inspection.
Results logged to D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/websocket-driver-0.7.1/gem_make.out
Файл в D:\Program Files\Ruby26-x64\lib\ruby \gems\2.6.0\extensions\x64-mingw32\2.6.0\websocket-driver-0.7.1\gem_make.out содержит следующее -
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
D:/Program\ Files/Ruby26-x64/bin/ruby.exe -I D:/Program\ Files/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20191012-2920-1j4dz9l.rb extconf.rb
creating Makefile
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
make "DESTDIR=" clean
Makefile:269: *** multiple target patterns. Stop.
current directory: D:/Program Files/Ruby26-x64/lib/ruby/gems/2.6.0/gems/websocket-driver-0.7.1/ext/websocket-driver
make "DESTDIR="
Makefile:269: *** multiple target patterns. Stop.
make failed, exit code 2
Я попытался обновить Gem, как предлагали другие сообщения, но безуспешно. Мы будем очень благодарны за любое понимание моей проблемы!
ОБНОВЛЕНИЕ: Rails v4.0.0 устанавливается нормально. v5.0.0 предоставила ту же ошибку. Возникнут ли у меня проблемы с запуском Ruby 2.6.5p114 и Gems 3.0.6 и работой с Rails 4.0.0? Что я не смогу делать с этой более ранней версией? Я бы предпочел не соглашаться с v4, я бы предпочел v6.
ОБНОВЛЕНИЕ 2: Rails v4.2.11.1 также устанавливается нормально. Последний раз он был обновлен в марте 2019 года, хотя версия 5 была выпущена в июне 2016 года. Пока я буду придерживаться версии 4.2.11.1, пока не поможет иное.
2 ответа
Я нашел эту ветку на доске проблем для гема веб-сокетов, который вызывает ошибку: https://github.com/faye/websocket-driver-ruby/issues/35
Я согласен с тем, что вам следует попробовать вручную установить гем websockets-driver и посмотреть, будет ли затем установлена остальная часть пакета.
Еще одна вещь, которую вы можете сделать, если эта версия этого гема просто отказывается работать в вашей системе, - это зайти в гем-файл для этого проекта и вручную указать более раннюю версию гема. Есть хороший шанс, что вы все еще можете работать со старой версией в то же время, и таким образом вы все еще можете использовать rails 6.
У меня такая же проблема. Я мог установить с помощью следующей команды:
sudo gem install rails --version 4.0
Но у меня версия 4.0