Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

最近Macで急にRailsコマンドが使えなくなった時にした解決方法

本町で開催されているDDD.rb主催のもくもく会に参加してきました。

dddrb.doorkeeper.jp

その中で、今まで使えていたRailsが急に使えなくなり、エラーメッセージが「ffi の vative extensions がどうしたこうした...」という現象を相談している方がおられ、

「ん?ffi ?それ、昨日自分も同じ現象でハマってたやつでは?」

同じハマり方をしているケースも多々ありそうだったのでブログ記事を書いてみました。
具体的には、「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のエラーが出るやつでした。

自分がとった解決方法は、Rubygemsffiの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 する必要があるかもしれません。(自己の環境では未実施)

もくもく会

  • 書籍「プロを目指す人のためのRuby入門」の練習問題の復習
  • Railsを使ったAPIの作り方
  • Reactを使ってviewを描画するウェブアプリの事

で、Reactは名前を聞いた程度で、概念、方法など全く知識が無かった事だったのでとても勉強になりました。