LoginSignup
0
0

More than 5 years have passed since last update.

macOS Sierra で ActiveRecord sqlite3_adapterのセグフォエラーがでたときの対処

Posted at

macOS SierraでRailsを立ち上げたときに以下のようなエラーが出ました。
sqlite3_adapterがセグメンテーションフォルトを起こしているようです。

/Users/yuji-a/projects/rails-test/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/sqlite3_adapter.rb:26: [BUG] Segmentation fault at 0x00000000000110
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]

-- Crash Report log information --------------------------------------------
   See Crash Report log file under the one of following:
     * ~/Library/Logs/CrashReporter
     * /Library/Logs/CrashReporter
     * ~/Library/Logs/DiagnosticReports
     * /Library/Logs/DiagnosticReports
   for more details.
Don't forget to include the above Crash Report log file in bug reports.

-- Control frame information -----------------------------------------------
c:0055 p:---- s:0299 e:000298 CFUNC  :initialize
c:0054 p:---- s:0297 e:000296 CFUNC  :new

対応策を調査してみると、すでにGitHubのIssueで解決済みで、新しいバージョンのsqlite3をhomebrewでインストールし、sqlite3のgemも最新のバージョンをインストールすれば治っているようです。

OS X Sierra sqlite seg fault

以下に私が対応したときのコマンドを共有します。

// sqlite3の再インストール。upgradeでも良かったかも
$ brew uninstall sqlite3
$ brew install sqlite3

// railsプロジェクトのルートディレクトリに移動
$ cd ~/rails-project/

// bundlerでインストールされるsqlite3 gem用にオプション指定
$ bundle config build.sqlite3 --with-sqlite3-dir=$(brew --prefix sqlite3)

// bundle configが反映されているか確認
$ cat ~/.bundle/config
2.3.1
---
BUNDLE_BUILD__SQLITE3: "--with-sqlite3-dir=/usr/local/opt/sqlite"

// インストール済みgemを一旦削除。他のディレクトリにインストールしていれば適宜読み替えて下さい
$ rm -rf vendor/bundle/

// 依存gemを再インストール
$ bundle install 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0