Я не могу найти эту конкретную ошибку в сети, но при вводе sudo gem install rails -v 5.2.2
я получаю следующую ошибку:
nysa@nysa-System-Product-Name:~$ sudo gem install rails -v 5.2.2
Fetching activesupport-5.2.2.gem
Fetching actionview-5.2.2.gem
Fetching actionpack-5.2.2.gem
Fetching railties-5.2.2.gem
Fetching activerecord-5.2.2.gem
Fetching activemodel-5.2.2.gem
Fetching activestorage-5.2.2.gem
Fetching actioncable-5.2.2.gem
Fetching activejob-5.2.2.gem
Fetching actionmailer-5.2.2.gem
Fetching rails-5.2.2.gem
Successfully installed activesupport-5.2.2
Successfully installed actionview-5.2.2
Successfully installed actionpack-5.2.2
Successfully installed railties-5.2.2
Successfully installed activemodel-5.2.2
Successfully installed activerecord-5.2.2
Successfully installed activestorage-5.2.2
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.5.0/gems/websocket-driver-0.7.1/ext/websocket-driver
/usr/bin/ruby2.5 -I /usr/local/lib/site_ruby/2.5.0 -r ./siteconf20190626-19849-1302wcu.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.5.0/gems/websocket-driver-0.7.1 for inspection.
Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/websocket-driver-0.7.1/gem_make.out
Похоже, у меня уже установлена версия rails, но при наборе rails -v
Я получаю сообщение, что «рельсы» не существуют. Как я могу установить последнюю версию Rails и заставить это работать?
Установка rails включает в себя компиляцию некоторого исходного кода на C, для чего требуются заголовочные файлы из любых библиотек, которые использует C-код. Как минимум, пакет ruby-dev
должен быть установлен, поскольку он предоставляет заголовочные файлы для самого Ruby. Похоже, что конкретная ошибка, которую вы видели, связана с ее отсутствием, поскольку /usr/lib/ruby/include/ruby.h
- это отсутствие.
Установка ruby-dev
часто достаточно для решения этой проблемы. Однако я обнаружил, что в последних системах Ubuntu, на которых не установлено zlib1g-dev
, мне это тоже нужно. Я предполагаю, что люди часто уже установили его, и поэтому его необходимо устанавливать реже.
sudo apt update
sudo apt install ruby-dev zlib1g-dev
После установки этих пакетов вы можете просто снова запустить команду gem install
. Если есть еще ошибки, которые говорят о невозможности найти заголовочные файлы, вы можете установить соответствующие -dev
пакеты, но я не ожидаю, что будет что-то еще, что вам нужно установить.
Установка ruby-dev
также иногда исправляет проблемы gem install
, в которых в сообщениях об ошибках не указывается отсутствующий заголовочный файл.
В зависимости от того, что вы пытаетесь сделать, вы также можете рассмотреть альтернативы:
rails
(sudo apt install rails
), хотя это может и не предоставьте нужную вам версию, если вам нужна конкретная версия, или gem install
без sudo
, чтобы она была установлена в вашем домашний каталог (который вы должны уметь ), или