はじめに
Sinatraでデータベースを扱おうと思い,とりあえず一番初めに見た記事でsqlite3を使用していたので,それを使用することにしました.
Homebrewでインストールしましたが,早速悩む羽目になったので,備忘録として残します.
環境
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.3
BuildVersion: 18D109
$ brew -v
Homebrew 2.0.5
sqlite3のインストールの前に
Macにはデフォルトでsqlite3が入っているみたいです.
そのバージョンや場所を確認しておきます.
$ sqlite3 --version
3.24.0 2018-06-04 14:10:15 ...
$ which sqlite3
/usr/bin/sqlite3
特に気にならない方はこちらを使用しても良いのですが,デフォルトで入っているsqlite3のアップデート方法がわからなかったので,今回はHomebrewでインストールして使うことにしました.
sqlite3のインストール
早速Homebrewでsqlite3をインストールします.
Homebrew自体のインストール方法については,割愛します.
$ brew install sqlite3
...
sqlite is keg-only, which means it was not symlinked into /usr/local,
because macOS provides an older sqlite3.
...
色々出てきました...
とりあえず気にせずsqlite3の確認をしても上記のデフォルトのバージョンおよび場所が表示されます.
シンボリックリンクの作成
どうやらsqlite3はkeg-onlyで,シンボリックリンクを作成しないらしい...(ここで初めて,Homebrewではシンボリックリンクを作成して,そこを参照していることを知りました.)
ということで,色々調べると,以下のコマンドでシンボリックリンクを作成できるらしいです.
$ brew link sqlite3 --force
Warning: Refusing to link macOS-provided software: sqlite
If you need to have sqlite first in your PATH run:
echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.zshrc
For compilers to find sqlite you may need to set:
export LDFLAGS="-L/usr/local/opt/sqlite/lib"
export CPPFLAGS="-I/usr/local/opt/sqlite/include"
For pkg-config to find sqlite you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/sqlite/lib/pkgconfig"
とりあえず,作成はできていません泣
試しに/usr/local/bin
を見ても無いことがわかるかと思います.
自分で作る
ということで,/usr/local/bin
に自分でsqlite3へのシンボリックリンクを作成しました.
$ cd /usr/local/bin
$ ln -sf ../Cellar/sqlite/3.27.2/bin/sqlite3 ./
3.27.2
の部分はインストールしたsqlite3のバージョンに合わせてください.
これでsqlite3のバージョンおよび場所がHomebrewでインストールしたところを指していると思います.
$ sqlite3 --version
3.27.2 2019-02-25 16:06:06 ...
$ which sqlite3
/usr/local/bin/sqlite3
最後に
今回は,Homebrewでsqlite3をインストールしたが,パスを通せないという場合の対処法を書きました.
対処法ということで,リンクが作成できなかった原因はまだ解決していません.似たような症状の方を見かけていないので,気になるところではあります.
本来ならbrew link sqlite3 --force
で通せると思います.
参考サイト
SQLite - [brew]OSXのbrewでインストールしたソフトウェアを常に使えるようにしたい|teratail
[Mac][Ruby]Rails環境構築には、データベースとしてSQLiteをオススメする! | Gabekore Garage