本町で開催されているDDD.rb主催のもくもく会に参加してきました。
その中で、今まで使えていたRailsが急に使えなくなり、エラーメッセージが「ffi の vative extensions がどうしたこうした...」という現象を相談している方がおられ、
「ん?ffi ?それ、昨日自分も同じ現象でハマってたやつでは?」
なんかInstalling ffi 1.9.21 with native extensionsでコケてる
— tomcha (@tomcha_) 2018年2月6日
同じハマり方をしているケースも多々ありそうだったのでブログ記事を書いてみました。
具体的には、「MacOS High Sierra」を利用中で、OSのバージョンアップをしているケースと想定されます。
そして、以前にインストールしていた時は問題なくRailsコマンドが使えていたのに、久しぶりにRails new するとエラーでコケてしまうという現象です。
Rails new や Rails server 等、Railsのコマンドを実行しようとすると....
Fetching ffi 1.9.21 Installing ffi 1.9.21 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
と ffi のGemのエラーが出るやつでした。
自分がとった解決方法は、RubygemsでffiのGemを見てみると、
https://rubygems.org/gems/ffi/versions
どうらら2018/2/6にアップデートされており、1月に使えていた時とバージョンが違ったので、 Gemfileを編集してffiを一つ前のバージョン固定でインストールしてみました。
<Gemfile> gem 'ffi', '1.9.18'
bundle install Fetching gem metadata from https://rubygems.org/.......... Fetching gem metadata from https://rubygems.org/. Resolving dependencies... Using rake 12.3.0 . . . Bundle complete! 9 Gemfile dependencies, 48 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed.
無事にGem がインストール出来てRailsコマンドが使えるようになりました。
自分の環境はrbenvを使ってsystemのRubyを使ってなかったので、bundle installコマンドはユーザー権限でインストールできましたが、rbenvを使わずに直接railsをインストールしている場合、sudo bundle install する必要があるかもしれません。(自己の環境では未実施)
で、Reactは名前を聞いた程度で、概念、方法など全く知識が無かった事だったのでとても勉強になりました。