公開日:9/22/2021  更新日:9/23/2021

  • twitter
  • facebook
  • line

Ruby on Rails の環境構築 (Windows10 ) で躓いた備忘録

前提

以下の作業は実施済み

  • Rubyのインストール
  • SQLite3のインストール
  • Ruby on Railsのインストール

使用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

Ruby on Rails

参考URL

  1. Rails 6 で rails s をすると起こる Webpacker エラーを解決
  2. How to fix ' Failed to build gem native extension' error with bootsnap with Windows

戻る