LoginSignup
14
9

More than 3 years have passed since last update.

【Tips】Ubuntuへのsqlite3 gemインストール時に発生しうるエラーへの対処

Posted at

問題

入力

gem install sqlite3 -v '1.4.1'

出力

Building native extensions. This could take a while...
/home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/rubygems/ext/builder.rb:76: warning: Insecure world writable dir /home/【ユーザー名】/.anyenv/envs/rbenv/versions in PATH, mode 040777
ERROR:  Error installing sqlite3:
        ERROR: Failed to build gem native extension.

    current directory: /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1/ext/sqlite3
/home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/bin/ruby -I /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20191109-13641-qybk8d.rb extconf.rb
/home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/mkmf.rb:1565: warning: Insecure world writable dir /home/【ユーザー名】/.anyenv/envs/rbenv/versions in PATH, mode 040777
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.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/bin/$(RUBY_BASE_NAME)
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-config
        --without-sqlite3-config
        --with-pkg-config
        --without-pkg-config
        --with-sqlcipher
        --without-sqlcipher
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.1 for inspection.
Results logged to /home/【ユーザー名】/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.1/gem_make.out

環境

  • Windows Subsystem for Linux (WSL)
    • Ubuntu 18.04 LTS
  • anyenv
    • rbenv 1.1.2-4-g577f046
      • ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

原因:SQLite3の開発用ライブラリ不足

native extensionとして必要なSQLiteに関連するライブラリがOSにインストールされていない。

解決方法

エラーメッセージに書かれているとおり、libsqlite3-devapt installすれば良い。他環境に関しても同様に、OS Xのbrewであればbrew install sqlite3、CentOSやAmazon Linux等RedHut系のyumで管理されているLinuxであればyum install sqlite-develが必要。

sudo apt install libsqlite3-dev
gem install sqlite3 -v '1.4.1'
14
9
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
14
9