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 を押してサーバー停止。 参考: