Windows版JRuby 9.2.11.0環境にRails 6.0.2.2を導入する
JRuby 9.2.11.0環境でRails 6.0.2.2を導入しようとすると色々な不具合にあった。
以下の手順を実行したところ、問題なくRails 6.0.2.2を導入できた。
- gccが導入されていない
各種gemパッケージのインストール時にnative-extensionの導入に失敗する。MinGWをインストールして回避
- makeコマンドが無い
makeコマンドが無いため、native-extenstionの導入に失敗する。
MinGWに導入されているmingw32-make.exeを呼び出すmake.batを以下のように作成する。[make.bat]
@echo off
set BATCH_DIR=%~dp0
set BIN_DIR=%BATCH_DIR%
"%BIN_DIR%\mingw32-make.exe"
- sasscがインストールできない
gem install sasscを実行すると、以下のようなエラーメッセージが出現する。
process_begin: CreateProcess(NULL, cc -I. -I/include/java -IC:/workspace/dev/jruby/portable-jruby-20200504-001/lib/ruby/include/ruby/backward -IC:/workspace/dev/jruby/portable-jruby-20200504-001/lib/ruby/include -I. -I./libsass/include -fPIC -fno-omit-frame-pointer -fno-strict-aliasing -fexceptions -DLIBSASS_VERSION=\"3.6.3\" -m64 -march=native -mtune=native -o c99func.o -c ./libsass/src/c99func.c, ...) failed.
make (e=2): 指定されたファイルが見つかりません。
mingw32-make: *** [Makefile:204: c99func.o] Error 2
C:/workspace/dev/jruby/portable-jruby-20200504-001/lib/ruby/stdlib/rubygems/ext/builder.rb:76: warning: unsupported popen option: err
process_begin: CreateProcess(NULL, cc -I. -I/include/java -IC:/workspace/dev/jruby/portable-jruby-20200504-001/lib/ruby/include/ruby/backward -IC:/workspace/dev/jruby/portable-jruby-20200504-001/lib/ruby/include -I. -I./libsass/include -fPIC -fno-omit-frame-pointer -fno-strict-aliasing -fexceptions -DLIBSASS_VERSION=\"3.6.3\" -m64 -march=native -mtune=native -o c99func.o -c ./libsass/src/c99func.c, ...) failed.
make (e=2): 指定されたファイルが見つかりません。
mingw32-make: *** [Makefile:204: c99func.o] Error 2
ERROR: Error installing sassc:
ERROR: Failed to build gem native extension.
上記のエラーはccコマンドが存在しないために発生する。コンソールで以下のコマンドを実行してgccを呼び出すようにする。
set cc=gcc
恒久対策として、以下のバッチを作成してMinGWのbinディレクトリにおく。
[cc.bat]
@echo off
set BATCH_DIR=%~dp0
set BIN_DIR=%BATCH_DIR%
"%BIN_DIR%\cc.exe"
動作確認
rails sコマンドでWebサーバーが立ち上がることを確認する。
Railsアプリのディレクトリに移動して、以下のコマンドを実行する。
rails s
以下のURLにアクセスしてRailsのサイトが表示されることを確認する。
http://localhost:3000