CentOS7 でパッケージとして入っている SQLite は若干古くて、Rails6 で使おうとすると、「バージョン古すぎるで」と言われてしまいます。
だからといって SQLite のバージョンを素直にあげようとしても、yum とかが絡んできて色々面倒くさい。なので、もろもろのパッケージで利用しているのは CentOS7 のまま、Rails6 用に最新版の SQLite を入れて使うようにしました。
SQLite のコンパイルとインストール
とくに何も考えずに、/usr/local/ 以下に SQLite をインストールします。
1 2 3 4 5 6 |
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz $ tar xvfz sqlite-autoconf-3300100.tar.gz $ cd sqlite-autoconf-3300100 $ ./configure --prefix=/usr/local $ make $ sudo make install |
bundle の設定
bundle で sqlite3 関連の gem をインストールする際に、上記でインストールした sqlite のライブラリを使うように設定します。
1 |
$ bundle config build.sqlite3 "--with-sqlite3-lib=/usr/local/lib" |
これで、bundle exec rails new したときとかの sqlite3 gem の native extension のコンパイル時に最新の SQLite が使われ、無事に Rails6 でも sqlite3 が使えるようになります。