rubysqlitesqlite3-ruby

sqlite3 ruby-gem causes undefined symbol rb_check_safe_obj on execution


I am leveraging sqlite3 and active-record. On my local machine everything works as expected. However, when attempting to read from the database on a new debian deployment i get the following error :

ruby: symbol lookup error: /home/<redacted>/.rvm/gems/ruby-3.0.0/gems/sqlite3-1.3.13/lib/sqlite3/sqlite3_native.so: undefined symbol: rb_check_safe_obj

I have installed libsqlite3-dev and sqlite3 gem using

$ gem install sqlite3 -v 1.3.13 -- --with-sqlite3-include=/usr/include --with-sqlite3-lib=/usr/lib/arm-linux-gnueabihf/

What did I do wrong?


Solution

  • It looks like sqlite3 version 1.3.13 is not compatible with ruby 3.0.0.

    Installing ruby version 2.5.1 resolved the issue.

    $ rvm install 2.5.1
    $ rvm use 2.5.1
    $ gem install bundler
    $ gem install sqlite3 -v 1.3.13 -- --with-sqlite3-include=/usr/include --with-sqlite3-lib=/usr/lib/arm-linux-gnueabihf/
    $ bundle install