1
0

More than 3 years have passed since last update.

Rails tやRails sでクラッシュレポートが出る!テストが実行されないとき。sqlite3関連エラー

Last updated at Posted at 2020-05-13

今回起きたエラー

Rails6.0でアプリ作成中にサーバー立ち上げや、
テスト実行で以下のクラッシュレポートが出ました。

-- 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.

このサイトによると、使っているsqlite3の参照元がいけないだとか。

こちらのサイトを参考に、
使うsqlite3をhomebrewからインストールしたものに変えてみた。

開発環境

OS: 64bit Mac macOS Catalina 10.15.3
Ruby 2.6.3
Rails6.0

やったこと

sqlite3インストール準備、brewをアップデート

sqlite3のバージョン確認。

$ sqlite3 --version
3.28.0 2019-04-15 14:49:49 378230ae7f4b721c8b8d83c8ceb891449685cd23b1702a57841f1be40b5daapl

sqlite3のパスを確認。

$ which sqlite3
/usr/bin/sqlite3

一応あらかじめbrewをアップデートしておく。

$ brew update

インストールしたパッケージのアップグレード。

$ brew upgrade

sqlite3のインストール

$ brew install sqlite3
Warning: sqlite 3.31.1 is already installed and up-to-date
To reinstall 3.31.1, run `brew reinstall sqlite`

どうやら元々大丈夫そうだったけど、reinstallされた。問題はなさそう。

/usr/local/binへのシンボリックリンク作成

cdでこんなこともできるんですね。

$ cd /usr/local/bin

Homebrewのインストール先の『Cellar』からsqlite3のシンボリックリンクを作成します。

とのことだ。
3.31.1という箇所は各自のバージョンに合わせてください。

$ ln -sf ../Cellar/sqlite/3.31.1/bin/sqlite3 ./

先ほどのシンボリックリンクが作成されたか確認。

$ ls -la

lrwxr-xr-x    1 takerusugeno  admin        35  5  4 01:04 sqlite3 -> ../Cellar/sqlite/3.31.1/bin/sqlite3

パスを通す

vimで直接パスを編集していきます。

$ vim ~/.bash_profile

最後の行に以下を追記。

export PATH=/usr/local/bin:"$PATH"

設定内容を反映させる。

$ source ~/.bash_profile

変更の確認

再度バージョン確認。

$ sqlite3 --version
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6

ふむ、ちゃんと先ほどbrewでインストールしたバージョンになってますね。

パスを確認。

$ which sqlite3
/usr/local/bin/sqlite3

変更できてるみたいです。

まだクラッシュレポートが出る

その後、こちらのサイトを見つけ、こちらに飛び、

Gem fileのminitestを'5.14.0'にして、

$ bundle update

以前、変わらずクラッシュレポート

最終手段

sqlite3をアンインストール。

$ gem uninstall sqlite3
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 repository.

その後、sudoで強引に消す。
※個人開発なので777を使いましたが、あくまで最終手段です。
chmodについては、あとでちゃんと調べるようにとメンターに念押しされました。

$ sudo chmod -R 777 /Library/Ruby/Gems/2.6.0

結果、システムのRubyに入ってた二つのバージョンのsqlite3が消えたようです。

ここで、試しにテストすると、稼働しました。
しかし、依然クラッシュレポートが出てる。

とりあえずテストが実行されたので、今はこれで御の字。

と思ったが、Gitにpush後にもう一度テストしたらクラッシュが出なくなった。

なるほど、さっぱり分からんという状態です。

ローカル環境構築時に、よく分からなくて複数バージョンのGemを大量に入れてしまっていたことと、
それらのシステムのRubyのGemを使用元にしているために、コンフリクトを起こしやすくなっているかもしれないです。

現在作っているアプリが完成したら、環境構築を1からやり直した方が良いかもしれないと感じました。

1
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
1
0