[Rails] gem install rails でエラーが出るときの対処法

TwitterFacebookHatena
  • 公開:2021-1-4
  • 更新:2024-11-12
  • 文章量:3061
  • Ruby

TL;DR

gem install rails でエラーが出たり、サーバーが起動できないときに試したこと。これで一応解決できた。

  • .zshrc を作って rbenv のパスを通す
  • ruby のバージョンを上げる
  • rails / ruby のアンインストール
  • gem install rails やり直す
  • ディレクトリを削除する
  • xcode-select --install やり直す

例えば gem install rails に失敗するときは、以下のようなエラーが出る。どうやら、コンパイルに失敗している模様。

ERROR: Error installing rails:
ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/nio4r-2.5.4/ext/nio4r

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./ siteconf20210103-61696-a56htj.rb extconf.rb
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 = / System / Library / Frameworks / Ruby.framework / Versions / 2.6 / usr / bin / $ (RUBY_BASE_NAME)
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
ERROR: Loading command: install (LoadError)
dlopen(/Users/~/.rbenv/versions/2.5.0/lib/ruby/2.5.0/x86_64-darwin18/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

.zshrc を作る。

touch .zshrc

rbenv のパスを通すため、.zshrc に以下を記入。

[[-d ~/.rbenv]] && \
 export PATH=${HOME}/.rbenv/bin:${PATH} && \
 eval "$(rbenv init -)"

パスを確認。rbenv を参照しているようですね。

$ which ruby
/Users/ユーザー名/.rbenv/shims/ruby

rbenv のバージョンを指定して入れ直す。Rails では Ruby バージョン 2.5.0 以降が必須です。

$ rbenv uninstall 2.5.0
$ rbenv install 2.5.0

rais のバージョン確認。正常にインストールされました。

rails --version
Rails 6.1.0

ブログを作成

$ rails new blog

無事、ブログのディレクトリが作られましたが、サーバーが動かない。 バージョンを変えてみる。

$ rbenv install 2.5.7
$ rbenv local 2.5.7
$ ruby -v

再び、サーバー起動するが、今度は rails が入ってないと警告が出ます。

rails server
rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
2.5.0

一度上のディレクトリに移動して、再度 ruby のバージョンアップ。rails もインストールし直して、blog ディレクトリを削除。

rbenv local 2.6.6
gem install rails
rm -r blog

再び、blog インストール。

rails new blog

blog ディレクトリに移動して、バージョン確認。おっ!入ってるね。

cd blog
rails version
Rails 6.1.0
ruby -v
ruby 2.6.6

サーバー起動。

rails s
=> Booting Puma
=> Rails 6.1.0 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...

- Puma version: 5.1.1 (ruby 2.6.6-p146) ("At Your Service")
- Min threads: 5
- Max threads: 5
- Environment: development
-          PID: 96922
- Listening on http://127.0.0.1:3000
- Listening on http://[::1]:3000
  Use Ctrl-C to stop

localhost:3000 を開く。 無事、サーバーも起動しました。ターミナル上で、Ctrl C を押してサーバー停止。 参考:

    MORE SKILL UP!

[Rails] gem install rails でエラーが出るときの対処法