これは何?
MacでRails6のインストールを試してみたところ、すんなりといかなかったのでその時にやったことを書きます。
Rails のインストール (エラー発生)
いきなり躓きました。
$ sudo gem install rails -v '6.0.0'
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: /Library/Ruby/Gems/2.6.0/gems/nio4r-2.5.8/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 ./siteconf20220102-18999-1c0hows.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h
You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.
extconf failed, exit code 1
Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/nio4r-2.5.8 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/nio4r-2.5.8/gem_make.out
あんまり深い入りせずに、Rubyのバージョンを上げてみることにします。
Ruby のバージョンを上げる
$ brew upgrade rbenv
$ rbenv install 2.7.5
$ rbenv global 2.7.5
で、Ruby のバージョンが切り替わらない!ってなったのですが、 最近、シェルをbash -> zsh に変えたことを思い出しました。
~/.zprofile
# rbenv Setting
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
設定ファイル読み込み
$ . ~/.zprofile
Rails のインストール
$ sudo gem install rails -v '6.0.0'
bundle install 通るまで
$ bundle install
下記のgem installをしたら、bundle install が通りました。
$ sudo gem install racc -v '1.6.0' --source 'https://rubygems.org/'
$ sudo gem install bindex -v '0.8.1' --source 'https://rubygems.org/'
$ sudo gem install msgpack -v '1.4.2' --source 'https://rubygems.org/'
$ sudo gem install bootsnap -v '1.9.3' --source 'https://rubygems.org/'
$ sudo gem install byebug -v '11.1.3' --source 'https://rubygems.org/'
$ sudo gem install ffi -v '1.15.4' --source 'https://rubygems.org/'
$ sudo gem install puma -v '3.12.6' --source 'https://rubygems.org/'
$ sudo gem install sqlite3 -v '1.4.2' --source 'https://rubygems.org/'
ローカルサーバー起動するまで
$ rails s
1: from /Users/xxx/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/configuration.rb:91:in `load'
/Users/xxx/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /Users/xxx/projects/memo/experiments/rails/sample-6.0/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /Users/xxx/projects/memo/experiments/rails/sample-6.0/config/webpacker.yml (RuntimeError)
エラーメッセージの通り、webpacker のインストールをします。
$ bundle exec rails webpacker:install
これでローカルサーバーが起動しました。
おわりに
ruby 2.6 / Rails 5系 で動作はしていたので、rubyがrbenvのものを使ってなかったのが原因だったのかもしれません とこの記事を書いている時に気がつきました。
新しめのrubyになったので、まあ良し!です。