公開日:9/22/2021 更新日:3/26/2022
以下の作業は実施済み
使用OS はMicrosoft Windows 10 home
Ruby 等のバージョンは以下です。
>ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]
>gem -v
2.7.6
>rails -v
Rails 6.1.4.1
>rails new rails_app
>cd rails_app
>rails s
環境構築を一通り終えて、上記コマンドを実行したところ
Installing bootsnap でエラーが発生。
以下エラー内容抜粋。
エラー内容
Fetching bootsnap 1.9.1
Installing bootsnap 1.9.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
gemのnative extenstionとは、主にCやC++などで書かれるライブラリを必要とするRubyのコード等を指すらしい。
bootsnap は処理を高速化する役割を担っており、Rails 5.2から導入されたとのこと。
執筆時点 (2021/09/23) での最新バージョンに揃えて環境構築を行ったので、それが原因なのかもしれない。
調べたところ、bootsnap が無くても rails の動作に影響ないそうなので Gemfile から bootstrap をコメントアウトした。
Gemfile
<変更前>
gem 'bootsnap', '>= 1.9.1', require: false
<変更後>
#gem 'bootsnap', '>= 1.9.1', require: false
次にconfig 配下の boot.rb も bootstrap を使用しているのでコメントアウト。
boot.rb
<変更前>
require "bootsnap/setup" # Speed up boot time by caching expensive operations.
<変更後>
#require "bootsnap/setup" # Speed up boot time by caching expensive operations.
気を取り直して、rails s を実行した所、エラー内容が変わった。
エラー内容
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/webpacker-5.4.3/lib/webpacker/configuration.rb:103:in `rescue in load': Webpacker configuration file not found >C:/Users/XXXXX/Desktop/rails_app/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - C:/Users/XXXXX/Desktop/rails_app/config/webpacker.yml (RuntimeError)
どうやら webpackの処理に必要な webpacker.yml が存在しないと怒っている。
筆者環境には元々 npm がインストール済みだったので、npmからymlをインストール。
npm install -g yarn
そしてwebpacker を インストール
rails webpacker:install
ついに、rails s で 無事 サーバが立ち上がった。
=> Booting Puma
=> Rails 6.1.4.1 application starting in development
=> Run `bin/rails server --help` for more startup options
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Puma version: 5.5.0 (ruby 2.5.1-p57) ("Zawgyi")
* Min threads: 5
* Max threads: 5
* Environment: development
* PID: 6064
* Listening on http://[::1]:3000
* Listening on http://127.0.0.1:3000
Use Ctrl-C to stop