Как установить Rails?

Я не могу найти эту конкретную ошибку в сети, но при вводе 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 и заставить это работать?

0
задан 26 June 2019 в 10:34

1 ответ

Установка 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, в которых в сообщениях об ошибках не указывается отсутствующий заголовочный файл.


В зависимости от того, что вы пытаетесь сделать, вы также можете рассмотреть альтернативы:

0
ответ дан 26 June 2019 в 10:34

Другие вопросы по тегам:

Похожие вопросы: