bundle install時に「An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.」と言うエラーが出たときの対策法

railsアプリを作成するためにbundle installをする際に

An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'` succeeds before bundling.

と言うエラーが出たので、その解決策をメモしておきます。

上記のエラーはどんな意味?

An error occurred while installing sqlite3 (1.3.13), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/'` succeeds before bundling.

先ほどのエラーは「sqlite3 (version 1.3.13 )をインストールしている時にエラーが起こったよ。だからbundle installを続けられないよ。だから、再度bundle installをする前にgem install sqlite3 -v '1.3.13' --source 'https://rubygems.org/' となっているか確かめて」と言う意味です。

このエラーよりも上の方に出ているエラー文を確認してみると、以下の様に表示されているはずです。

current directory: /usr/local/src/bundles/tutorial/ruby/2.4.0/gems/sqlite3-1.3.12/ext/sqlite3
/home/username/.rbenv/versions/2.4.2/bin/ruby -r ./siteconf20181211-17487-1eyzf34.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'brew install sqlite3',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

特に大事なのが4行目以降で

 Try 'brew install sqlite3',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).

と書かれていることから、CentOSの環境ではyum install sqlite-develのコマンドを行って、sqlite3の依存関係を解決するパッケージをインストールすればいけそうです。

(Ubuntu等の他のOSであれば、それぞれのコマンドを使ってsqlite3の依存関係を解決するパッケージをインストールしてください)

早速、以下のコマンドを実行。

sudo yum install sqlite-devel

その後にbundle installを実行すると、今度は上手くいきました。

ReratedPosts

Rails5で作ったアプリをHerokuでデプロイする手順
RubyやRailsをプロジェクト毎に入れて管理する方法