[Mac][Ruby]Rails環境構築には、データベースとしてSQLiteをオススメする!

 

 

なんと!9本の記事で詳しく丁寧に解説してるのだ!

 

こんにちは。ナガオカ(@boot_kt)です。

 

9本の記事でRails環境構築の解説をしています

この記事は7本目、SQLiteのインストールについて解説してます

 

この記事のザックリした内容
◆対象読者

  • Railsの環境構築手順を知りたい人
  • Railsの環境構築で、なぜそれらをインストールするのか「理解」したい人
  • Homebrew?、rbenv?、Bundeler?、gem? ←これらの事がよく分からない人
  • オススメしません!! → 手っ取り早くRails環境構築手順を知りたい人

 

 

Contents

 

 

事前説明

ここではこれをインストールします

SQLite

 

しかし、SQLiteのインストールをするにあたり、考え方が2つあります

 

考え方の1つ目:Macに最初からインストールされているSQLiteを使うパターン

Macには最初からSQLiteがインストールされています

この記事ではHomebrew経由でのSQLiteのインストール手順を説明してるんだけど、

 

最初からインストールされているんだったら、それ使えば良くなくね? わざわざHomebrew経由でのインストールなんか要らなくね?

 

と思う方は、

最初からMacに入っているSQLiteを使うので、新たなSQLiteをインストールしない! のパターン

この場合はインストールされているかだけ確認しておいてください

確認方法は次章で書いています

 

考え方の2つ目:Homebrew経由でインストールしたSQLiteを使うパターン

Macには最初からSQLiteがインストールされています・・・とは言うものの、別にHomebrew経由でインストールしても構いません

 

インストールするソフトは全てHomebrewで管理したい!

 

と思う方は、

 

最初からインストールされているSQLiteなんてイラネ、Homebrew経由でインストールしたSQLiteを使うねん! のパターン

 

この場合はHomebrew経由でインストールするので、事前にHomebrewをインストールしておいてやぁ~

 

↓Homebrewのインストールについてはコッチの記事ね
>> [Mac][Ruby]Rails環境構築には、Homebrewでパッケージ管理してラクをしろ!

 

Homebrew経由でインストールした場合、あなたのMacの中にはSQLiteが2つ存在することになります

SQLiteを使うにはターミナルでsqlite3 -versionみたいな感じで打てばいいんだけど、2つ以上のSQLiteが存在していたらどちらを使えばいいか分からないよね

フルパスを打てば両方を使い分けることは可能だけど、フルパスを毎回打つなんて面倒な事やってられへん!!!
なので滅多にそんなことはしまへん

 

で、ターミナルにsqlite3とだけ打って、どちらのSQLiteが実行されるのかは環境変数のPATHで決まります
ってことで、環境変数のPATHを必要に応じて修正しましょ~

 

環境変数のPATHをチェック及び修正方法を記事後半で書いています

参考:Homebrewからのインストールはした方がいいの?

Homebrewだけに限りませんが、パッケージマネージャーを使うメリットとしては以下があります

  • インストール場所が一つになる
    Homebrewの場合は、/usr/localになる(自分の好きな場所への変更は可能)
    デメリット?
    複数バージョンの共存は難しい
    どうしても複数バージョンを共存させたかったら、rbenvのような複数バージョンの切り替えソフトが必要
     
  • インストール手順がラクチン
    • ダウンロードを勝手にやってくれる
      コマンド一発でインターネットからダウンロードしてインストールまでやってくれる
      デメリット?

      • インターネットにつながっている必要がある
      • そもそも、インストールしたいソフトが使用しているパッケージマネージャーに対応していなかったら、インストールできない

       
    • ソフトによってはインストールするために何度かコマンドを打つ必要があったりするけど、パッケージマネージャー経由でのインストールならコマンド1回でできる
      例)brew install ○○
       
    • AのソフトをインストールするにはBが必要な場合がある(これを依存関係と言う)、その場合でもついでにBもインストールしておいてくれる(これを依存関係の解決と言う)
      デメリット?
      逆の言い方をすれば、使わないので要らないと分かっている物までインストールされてしまうことがある
       

     

  • アップデートもラクチン
    パッケージマネージャーで管理しているソフト全てを一括でアップできたりする
    デメリット?
    最新バージョンがパッケージマネージャーに対応していないとアップデートできない、もしくはタイムラグがある
     
  • アンインストールもラクチン
     

 

詳しくはWikipedia見てください

 

 

で、Homebrew経由でインストールする方が良いの?悪いの? どっちやねん!!!!?

どちらでもいいです
まぁ、好みですね

 

僕はHomebrewの使用をオススメしていますし、

最初から入っているSQLiteを使っても何の問題も無いけど、バージョンが古いし、アップデートのやり方が面倒だったりするの、個人的にはHomebrew経由でインストールしたものを使う方が好きです

って事で、この記事ではそれ経由のインストール手順を解説しています

 

Homebrewを使わない場合の手順は別途ご自分で調べてくださいね

 

ちなみに、Homebrew経由でインストール可能なリストは、

> brew search

と打てばOK

 

FORMULA名(一部分でもOK)が分かっているならこう書いてもOK↓

> brew search sqlite
> brew search sql
> brew search lite
[/aside]

 

前提知識

※知っている人は読む必要無いっス!

 

SQLiteのインストール場所について

Macに最初から入っているSQLiteは/usr/binに入っているはず

Homebrew経由でインストールしたSQLiteは/usr/local/bin?に入っているはず

上記以外の場所に入っている場合、この記事では対応しきれません

 

whichコマンドを知ろう

※Windowsの場合はwhereコマンド

> which sqlite

とか

> which sqlite3

とかと打てば、インストール場所が分かります
※ただし、環境変数PATHに登録されているディレクトリに存在していればね

 

環境変数PATHの登録内容を知ろう

環境変数PATHにディレクトリを登録するんだけど、その登録順序が重要!

↓くわしくはコッチの記事を見てね

>> [Mac]環境変数PATHの設定・変更・追加・確認・順番入れ替えの方法

 

冒頭に出した2つの考え方、あなたはどっちにしますか?
ここで決めてください!

冒頭に出した2つの考え方、あなたはどっちにしますか?

  • 考え方の1つ目:Macに最初からインストールされているSQLiteを使うパターン
  • 考え方の2つ目:Homebrew経由でインストールしたSQLiteを使うパターン

ここで決めてください!

決めてから読み進めてください

  ↓

  ↓

  ↓

  ↓

  ↓

決めましたか?

決めたら、次章の事前確認を読んでください

考え方の1つ目:Macに最初からインストールされているSQLiteを使うパターンの人用

考え方の2つ目:Homebrew経由でインストールしたSQLiteを使うパターンの人用

の2つあるので、必要な方を読んでください

 

事前確認
考え方の1つ目:Macに最初からインストールされているSQLiteを使うパターンの人用

確認:Macに最初から入っているSQLiteの存在を確認する

通常であれば/usr/binに入っているはずです

念のために存在を確認しておきましょう

ターミナルで以下のコマンドを打ってください

> ls -la /usr/bin/sqlite3

 

↓と表示されるとインストールされていないです
ls: /usr/bin/sqlite3: No such file or directory

↓と表示されるとインストールされています
-rwxr-xr-x 1 root wheel 172592 7 9 2016 /usr/bin/sqlite3

 

確認:使える状態になっているか確認する

ターミナルで以下のコマンドを打ってください

> which sqlite3

/usr/local/bin/sqlite3

と表示されればOKです

 

whichコマンドで何も表示されない場合

PATHが通っていません環境変数PATHを確認してください
/usr/local/binへパスを通しましょう

 

whichコマンドで違うディレクトリが表示される場合

動く状態になっているならそれでもいいです
/usr/local/binにあるSQLiteを動かしたいなら、/usr/local/binへパスを通しましょう

 

用語:パスを通す
環境変数PATHにディレクトリを登録することを「パスを通す」と表現します

会話例1:
同僚:「コマンド(アプリ)をインストールしたんだけど、ターミナルで打っても起動してくれへんねん」
オレ:「パス通ってるの? 環境変数のPATH確認してみたら?」
同僚:「あ、ホンマや、PATHに登録されないないわ(パス通ってないわ)」

会話例2:
同僚:「コマンド(アプリ)の最新バージョンをインストールしたんだけど、ターミナルで打っても古いバージョンが起動するねん」
オレ:「最新バージョンの方にパス通ってるの? それか、古いバージョンの方が先にパス通ってるんじゃないの?」
同僚:「最新バージョンへのディレクトリも古いバージョンへのディレクトリもPATHに登録されてるけど(パス通ってるけど)、古いバージョンの方が先に登録されてるわ。最新バージョンの方のディレクトリを前になるようPATHを変更するわ」

 

インストールされている&パスは通っている

これ以上することは何もありません
この記事で得られるものはもうありません

 

インストールされていない

インストールしましょう

SQLiteはHomebrew経由じゃなくてもインストールできますので、別途SQLiteをインストールしてください

この記事ではその手順を説明していません・・・・

「mac sqlite インストール」とかで検索してください

この記事で得られるものはもうありません

 

注意
Macに最初から入っているSQLiteの場所を移動していたり、違う場所にある場合はちょっとこの記事では分かりません

> find / -name "*sqlite3*"

みたいな感じで検索することはできますけど、きっと大量にでてきます
sqliteの実行ファイル本体であるかどうかを見分けるのは大変です
そんな面倒なことやっていられません

whichで確認するのが良いでしょう

 

事前確認
考え方の2つ目:Homebrew経由でインストールしたSQLiteを使うパターンの人用

確認:Homebrew経由でSQLiteがインストールされているか確認する

ターミナルで以下のコマンドを打ってください

> brew list

↓こんな感じのが表示されるでしょう

autoconf	openssl		pstree		ruby-build
gdb		openssl@1.1	rbenv		wget
libyaml		pkg-config	readline

↑ここにsqliteの表示があればHomebrew経由でのSQLiteをインストール済みです

 

確認:使える状態になっているか確認する

ターミナルで以下のコマンドを打ってください

> which sqlite3

/usr/local/bin/sqlite3

と表示されればOKです

 

whichコマンドで何も表示されない場合

PATHが通っていません環境変数PATHを確認してください
/usr/local/binへパスを通しましょう

 

whichコマンドで違うディレクトリが表示される場合

動く状態になっているならそれでもいいです
/usr/local/binにあるSQLiteを動かしたいなら、/usr/local/binへパスを通しましょう

 

用語:パスを通す
環境変数PATHにディレクトリを登録することを「パスを通す」と表現します

会話例1:
同僚:「コマンド(アプリ)をインストールしたんだけど、ターミナルで打っても起動してくれへんねん」
オレ:「パス通ってるの? 環境変数のPATH確認してみたら?」
同僚:「あ、ホンマや、PATHに登録されないないわ(パス通ってないわ)」

会話例2:
同僚:「コマンド(アプリ)の最新バージョンをインストールしたんだけど、ターミナルで打っても古いバージョンが起動するねん」
オレ:「最新バージョンの方にパス通ってるの? それか、古いバージョンの方が先にパス通ってるんじゃないの?」
同僚:「最新バージョンへのディレクトリも古いバージョンへのディレクトリもPATHに登録されてるけど(パス通ってるけど)、古いバージョンの方が先に登録されてるわ。最新バージョンの方のディレクトリを前になるようPATHを変更するわ」

 

インストールされている&パスは通っている

これ以上することは何もありません
この記事で得られるものはもうありません

 

インストールされていない

インストールしましょう

Homebrew経由でのインストール手順はこの記事で説明していますので、読み進みてください

 

インストール

この記事ではHomebrew経由でSQLiteをインストールします

ターミナルで以下のコマンドを打てばインストールが始まります
※brew install sqlite3の方がいいのかな? ごめんなさい、「3」を付けるべきなのか、付けても付けなくても同じなのか、ちょっと分からないです。多分どっちでも同じだろうけど

> brew install sqlite

 

インストールしたら終わりと思うなよ!
keg-onlyなのですぐには使えないよ!

インストール自体は簡単でコマンド一発で終わりなんですけど、HomebrewにおけるSQLiteはkeg-onlyなんですよ

 

ん? keg-onlyってなんやねん????

 

 

インストールのログを読んでみてください

こんなのが出ているはずです

 

This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS provides an older sqlite3.
意訳
このフォーミュラ(Homebrewではソフトウェアのことをフォーミュラと言う)はkeg-onlyだよ~ん
なので、/usr/localへのシンボリックリンクは作らないよ

それは、Macが最初っからsqlite持ってるからだよ

Homebrew経由でインストールしたSQLiteを使いたいなら、お前が自分でシンボリックリンク作るか何かしやがれ!

keg-onlyじゃない普通のフォーミュラなら、/usr/local/Cellarにインストールして、/usr/local/binにシンボリックリンク置くんやけどな(リンク先はもちろんインストールされた/usr/local/Cellar

代わりに、/usr/local/optにシンボリックリンク置いといたるわ(リンク先はもちろんインストールされた/usr/local/Cellar

あとは、自分でやりやがれ!!!

 

kegとかCellarってなに?
kegは樽とか入れ物とかっていう意味です
Homebrewのbrewがビールとかっていう意味なので、ビールの入れ物が樽という事なんでしょうね
weblio「keg」

cellarは地下室とか貯蔵庫って言う意味
weblio「cellar」

↓kegで検索すると参考になるかも

 

keg-onlyなフォーミュラを、ちゃんと使えるようにするには?

パターン1:自力でシンボリックを作る

※普通はやらないってか、やらないらしい

自分で/usr/local/binにシンボリックリンクを作れば使えるようになるけど、シンボリックリンクを作るコマンドをHomebrewにあるのでそれを使うと良いので、自力でlnコマンドを打つ必要は無い

 

 

パターン2:/usr/local/optにあるシンボリックリンクを環境変数PATHに追加する

※普通はやらない・・・と思う
インストールログを読んでみてね

こんなの出てるよ

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.bash_profile

 

パターン3:brew installを使う

※普通はこのパターンらしい

> brew link sqlite3 --force

 

【オマケ】別に読まなくてもいいよ:brew linkをするとどうなる?

brew install でSQLiteをインストールしましたが、どこに何が入るのでしょうか?

インストールログを読めばわかるレベルですが、興味があれば参考までにどうぞ

 

インストール先のディレクトリ

インストールでは以下の3つのディレクトリにファイルとか入るようです

※他にも影響しているディレクトリやファイルがあるかも知れませんが、あくまでもインストールログで分かるところだけ見ます

 

  • /usr/local/Cellar/
    フォーミュラ本体(と言うか実体)がインストールされます
    環境変数PATHには直接ここを登録せず、/usr/local/binを登録し、
    /usr/local/binにおいてシンボリックリンクを動作させるのが普通みたいです
  • /usr/local/opt
    シンボリックリンクを置いてますが、使い途はよく分かりません
    ここにパス通せばいいような気がしないでもないけど(笑)
    ま、普通はしないよね
  • /usr/local/bin
    ここにもシンボリックリンクが入ってますね
    ここにパスを通すのがHomebrewでの通常の使い方です

 

brew link sqlite3 --force直前を見てみる

Cellar

> ls -la /usr/local/Cellar/
total 0
drwxr-xr-x  14 username  admin  476  8 17 07:02 .
drwxrwxr-x  23 username  admin  782  8 12 07:33 ..
drwxr-xr-x   3 username  admin  102  8  3 11:11 autoconf
drwxr-xr-x   4 username  admin  136  8  6 08:36 gdb
drwxr-xr-x   3 username  admin  102  7 13 00:54 libyaml
drwxr-xr-x   5 username  admin  170  7 13 00:54 openssl
drwxr-xr-x   3 username  admin  102  8  6 08:36 openssl@1.1
drwxr-xr-x   3 username  admin  102  8  3 11:11 pkg-config
drwxr-xr-x   3 username  admin  102  2  3  2016 pstree
drwxr-xr-x   3 username  admin  102  8  3 11:11 rbenv
drwxr-xr-x   3 username  admin  102  7 13 00:54 readline
drwxr-xr-x   3 username  admin  102  8  3 11:11 ruby-build
drwxr-xr-x   4 username  admin  136  8 18 08:58 sqlite
drwxr-xr-x   4 username  admin  136  8  6 08:36 wget

 

opt

> ls -la /usr/local/opt
total 128
drwxr-xr-x  18 username  admin  612  8 17 07:02 .
drwxrwxr-x  23 username  admin  782  8 12 07:33 ..
lrwxr-xr-x   1 username  admin   23  8  3 11:11 autoconf -> ../Cellar/autoconf/2.69
lrwxr-xr-x   1 username  admin   23  8  3 11:11 autoconf@2.69 -> ../Cellar/autoconf/2.69
lrwxr-xr-x   1 username  admin   17  8  6 08:36 gdb -> ../Cellar/gdb/8.0
lrwxr-xr-x   1 username  admin   23  7 13 00:54 libyaml -> ../Cellar/libyaml/0.1.7
lrwxr-xr-x   1 username  admin   24  7 13 00:54 openssl -> ../Cellar/openssl/1.0.2l
lrwxr-xr-x   1 username  admin   24  7 13 00:54 openssl@1.0 -> ../Cellar/openssl/1.0.2l
lrwxr-xr-x   1 username  admin   28  8  6 08:36 openssl@1.1 -> ../Cellar/openssl@1.1/1.1.0f
lrwxr-xr-x   1 username  admin   27  8  3 11:11 pkg-config -> ../Cellar/pkg-config/0.29.2
lrwxr-xr-x   1 username  admin   27  8  3 11:11 pkgconfig -> ../Cellar/pkg-config/0.29.2
lrwxr-xr-x   1 username  admin   21  2  3  2016 pstree -> ../Cellar/pstree/2.39
lrwxr-xr-x   1 username  admin   21  8  3 11:11 rbenv -> ../Cellar/rbenv/1.1.1
lrwxr-xr-x   1 username  admin   26  7 13 00:54 readline -> ../Cellar/readline/7.0.3_1
lrwxr-xr-x   1 username  admin   29  8  3 11:11 ruby-build -> ../Cellar/ruby-build/20170726
lrwxr-xr-x   1 username  admin   23  8 17 07:02 sqlite -> ../Cellar/sqlite/3.20.0
lrwxr-xr-x   1 username  admin   23  8 17 07:02 sqlite3 -> ../Cellar/sqlite/3.20.0
lrwxr-xr-x   1 username  admin   23  8  6 08:36 wget -> ../Cellar/wget/1.19.1_1

 

bin

> ls -la /usr/local/bin
total 18360
drwxrwxr-x  88 username  admin     2992  8  6 08:36 .
drwxrwxr-x  23 username  admin      782  8 12 07:33 ..
lrwxr-xr-x   1 root     wheel       66  5  1  2016 2to3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/2to3
lrwxr-xr-x   1 root     wheel       70  5  1  2016 2to3-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/2to3-3.5
-rwxrwxr-x   1 root     wheel    13972  1 12  2014 acyclic
lrwxr-xr-x   1 username  admin       71  2 15  2016 apm -> /Applications/Atom.app/Contents/Resources/app/apm/node_modules/.bin/apm
lrwxr-xr-x   1 username  admin       53  2 15  2016 atom -> /Applications/Atom.app/Contents/Resources/app/atom.sh
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autoconf -> ../Cellar/autoconf/2.69/bin/autoconf
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoheader -> ../Cellar/autoconf/2.69/bin/autoheader
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autom4te -> ../Cellar/autoconf/2.69/bin/autom4te
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoreconf -> ../Cellar/autoconf/2.69/bin/autoreconf
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autoscan -> ../Cellar/autoconf/2.69/bin/autoscan
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoupdate -> ../Cellar/autoconf/2.69/bin/autoupdate
-rwxrwxr-x   1 root     wheel    19000  1 12  2014 bcomps
lrwxr-xr-x   1 username  admin       28  7 13 00:52 brew -> /usr/local/Homebrew/bin/brew
lrwxr-xr-x   1 username  admin       37  2 28  2016 c_rehash -> ../Cellar/openssl/1.0.2f/bin/c_rehash
-rwxrwxr-x   1 root     wheel    23884  1 12  2014 ccomps
lrwxr-xr-x   1 504      staff        3  8  9  2016 circo -> dot
-rwxrwxr-x   1 root     wheel    48064  1 12  2014 cluster
-rwxrwxr-x   1 root     wheel    18816  1 12  2014 dijkstra
-rwxrwxr-x   1 root     wheel    18456  1 12  2014 dot
lrwxr-xr-x   1 504      staff        6  8  9  2016 dot2gxl -> gxl2gv
-rwxrwxr-x   1 root     wheel    40608  1 12  2014 dot_builtins
-rwxrwxr-x   1 root     wheel     2085  1 12  2014 dotty
lrwxrwxr-x   1 root     admin       78  5  1  2016 easy_install-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/easy_install-3.5
lrwxr-xr-x   1 504      staff        3  8  9  2016 fdp -> dot
-rwxrwxr-x   1 root     wheel    18304  1 12  2014 gc
-rwxr-xr-x   1 root     admin  7230128  1 29  2016 gdb
-rwxrwxr-x   1 root     wheel    40156  1 12  2014 gml2gv
-rwxrwxr-x   1 root     wheel    24108  1 12  2014 graphml2gv
-rwxrwxr-x   1 root     wheel   751256  1 12  2014 gv-fc-cache
-rwxrwxr-x   1 root     wheel    22808  1 12  2014 gv2gml
lrwxr-xr-x   1 504      staff        6  8  9  2016 gv2gxl -> gxl2gv
-rwxrwxr-x   1 root     wheel    35304  1 12  2014 gvcolor
-rwxrwxr-x   1 root     wheel    26108  1 12  2014 gvgen
-rwxrwxr-x   1 root     wheel   288632  1 12  2014 gvmap
-rwxrwxr-x   1 root     wheel     2190  1 12  2014 gvmap.sh
-rwxrwxr-x   1 root     wheel    33220  1 12  2014 gvpack
-rwxrwxr-x   1 root     wheel    12736  1 12  2014 gvpr
lrwxr-xr-x   1 504      staff        6  8  9  2016 gxl2dot -> gxl2gv
-rwxrwxr-x   1 root     wheel    41692  1 12  2014 gxl2gv
lrwxr-xr-x   1 root     wheel       67  5  1  2016 idle3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/idle3
lrwxr-xr-x   1 root     wheel       69  5  1  2016 idle3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/idle3.5
lrwxr-xr-x   1 username  admin       35  8  3 11:11 ifnames -> ../Cellar/autoconf/2.69/bin/ifnames
-rwxrwxr-x   1 root     wheel   278092  1 12  2014 lefty
-rwxrwxr-x   1 root     wheel     1547  1 12  2014 lneato
-rwxrwxr-x   1 root     wheel    35832  1 12  2014 mm2gv
lrwxr-xr-x   1 504      staff        3  8  9  2016 neato -> dot
-rwxrwxr-x   1 root     wheel    13640  1 12  2014 nop
lrwxr-xr-x   1 username  admin       36  2 28  2016 openssl -> ../Cellar/openssl/1.0.2f/bin/openssl
lrwxr-xr-x   1 504      staff        3  8  9  2016 osage -> dot
lrwxr-xr-x   1 504      staff        3  8  9  2016 patchwork -> dot
lrwxrwxr-x   1 root     admin       66  5  1  2016 pip3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pip3
lrwxrwxr-x   1 root     admin       68  5  1  2016 pip3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pip3.5
lrwxr-xr-x   1 username  admin       42  8  3 11:11 pkg-config -> ../Cellar/pkg-config/0.29.2/bin/pkg-config
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_convert -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_disk_tool -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_perf_ctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       62  3 12 09:45 prlcore2dmp -> /Applications/Parallels Desktop.app/Contents/MacOS/prlcore2dmp
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prlctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       58  3 12 09:45 prlexec -> /Applications/Parallels Desktop.app/Contents/MacOS/prlexec
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prlsrvctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
-rwxrwxr-x   1 root     wheel    18792  1 12  2014 prune
lrwxr-xr-x   1 username  admin       32  2  3  2016 pstree -> ../Cellar/pstree/2.39/bin/pstree
lrwxr-xr-x   1 root     wheel       68  5  1  2016 pydoc3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3
lrwxr-xr-x   1 root     wheel       70  5  1  2016 pydoc3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5
lrwxr-xr-x   1 root     wheel       69  5  1  2016 python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3
lrwxr-xr-x   1 root     wheel       72  5  1  2016 python3-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-32
lrwxr-xr-x   1 root     wheel       76  5  1  2016 python3-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-config
lrwxr-xr-x   1 root     wheel       71  5  1  2016 python3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
lrwxr-xr-x   1 root     wheel       74  5  1  2016 python3.5-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-32
lrwxr-xr-x   1 root     wheel       78  5  1  2016 python3.5-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-config
lrwxr-xr-x   1 root     wheel       72  5  1  2016 python3.5m -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m
lrwxr-xr-x   1 root     wheel       79  5  1  2016 python3.5m-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config
lrwxr-xr-x   1 root     wheel       68  5  1  2016 pyvenv -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pyvenv
lrwxr-xr-x   1 root     wheel       72  5  1  2016 pyvenv-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pyvenv-3.5
lrwxr-xr-x   1 username  admin       31  8  3 11:11 rbenv -> ../Cellar/rbenv/1.1.1/bin/rbenv
lrwxr-xr-x   1 username  admin       47  8  3 11:11 rbenv-install -> ../Cellar/ruby-build/20170726/bin/rbenv-install
lrwxr-xr-x   1 username  admin       49  8  3 11:11 rbenv-uninstall -> ../Cellar/ruby-build/20170726/bin/rbenv-uninstall
lrwxr-xr-x   1 username  admin       44  8  3 11:11 ruby-build -> ../Cellar/ruby-build/20170726/bin/ruby-build
lrwxr-xr-x   1 root     wheel       58 12 14  2015 scan -> /Library/Application Support/Avast/components/cliscan/scan
-rwxrwxr-x   1 root     wheel    19068  1 12  2014 sccmap
lrwxr-xr-x   1 504      staff        3  8  9  2016 sfdp -> dot
-rwxrwxr-x   1 root     wheel    14152  1 12  2014 tred
lrwxr-xr-x   1 504      staff        3  8  9  2016 twopi -> dot
-rwxrwxr-x   1 root     wheel    18376  1 12  2014 unflatten
-rwxrwxr-x   1 root     wheel     1051  1 12  2014 vimdot
lrwxr-xr-x   1 username  admin       32  8  6 08:36 wget -> ../Cellar/wget/1.19.1_1/bin/wget

 

brew link sqlite3 --force直後を見てみる

ログを見てみる

If you need ・・・って感じでPATHに追記しろって書いてあるけど、無視です!

> brew link sqlite3 --force
Linking /usr/local/Cellar/sqlite/3.20.0... 8 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.bash_profile

 

Cellar

※変化無いです

> ls -la /usr/local/Cellar/
total 0
drwxr-xr-x  14 username  admin  476  8 17 07:02 .
drwxrwxr-x  23 username  admin  782  8 12 07:33 ..
drwxr-xr-x   3 username  admin  102  8  3 11:11 autoconf
drwxr-xr-x   4 username  admin  136  8  6 08:36 gdb
drwxr-xr-x   3 username  admin  102  7 13 00:54 libyaml
drwxr-xr-x   5 username  admin  170  7 13 00:54 openssl
drwxr-xr-x   3 username  admin  102  8  6 08:36 openssl@1.1
drwxr-xr-x   3 username  admin  102  8  3 11:11 pkg-config
drwxr-xr-x   3 username  admin  102  2  3  2016 pstree
drwxr-xr-x   3 username  admin  102  8  3 11:11 rbenv
drwxr-xr-x   3 username  admin  102  7 13 00:54 readline
drwxr-xr-x   3 username  admin  102  8  3 11:11 ruby-build
drwxr-xr-x   4 username  admin  136  8 18 08:58 sqlite
drwxr-xr-x   4 username  admin  136  8  6 08:36 wget

 

opt

※変化無いです

> ls -la /usr/local/opt
total 128
drwxr-xr-x  18 username  admin  612  8 18 10:00 .
drwxrwxr-x  23 username  admin  782  8 12 07:33 ..
lrwxr-xr-x   1 username  admin   23  8  3 11:11 autoconf -> ../Cellar/autoconf/2.69
lrwxr-xr-x   1 username  admin   23  8  3 11:11 autoconf@2.69 -> ../Cellar/autoconf/2.69
lrwxr-xr-x   1 username  admin   17  8  6 08:36 gdb -> ../Cellar/gdb/8.0
lrwxr-xr-x   1 username  admin   23  7 13 00:54 libyaml -> ../Cellar/libyaml/0.1.7
lrwxr-xr-x   1 username  admin   24  7 13 00:54 openssl -> ../Cellar/openssl/1.0.2l
lrwxr-xr-x   1 username  admin   24  7 13 00:54 openssl@1.0 -> ../Cellar/openssl/1.0.2l
lrwxr-xr-x   1 username  admin   28  8  6 08:36 openssl@1.1 -> ../Cellar/openssl@1.1/1.1.0f
lrwxr-xr-x   1 username  admin   27  8  3 11:11 pkg-config -> ../Cellar/pkg-config/0.29.2
lrwxr-xr-x   1 username  admin   27  8  3 11:11 pkgconfig -> ../Cellar/pkg-config/0.29.2
lrwxr-xr-x   1 username  admin   21  2  3  2016 pstree -> ../Cellar/pstree/2.39
lrwxr-xr-x   1 username  admin   21  8  3 11:11 rbenv -> ../Cellar/rbenv/1.1.1
lrwxr-xr-x   1 username  admin   26  7 13 00:54 readline -> ../Cellar/readline/7.0.3_1
lrwxr-xr-x   1 username  admin   29  8  3 11:11 ruby-build -> ../Cellar/ruby-build/20170726
lrwxr-xr-x   1 username  admin   23  8 18 10:00 sqlite -> ../Cellar/sqlite/3.20.0
lrwxr-xr-x   1 username  admin   23  8 18 10:00 sqlite3 -> ../Cellar/sqlite/3.20.0
lrwxr-xr-x   1 username  admin   23  8  6 08:36 wget -> ../Cellar/wget/1.19.1_1

 

bin

lrwxr-xr-x   1 username  admin       35  8 18 10:00 sqlite3 -> ../Cellar/sqlite/3.20.0/bin/sqlite3

が増えている

 

つまりbrew link sqlite3 --forceを実行すると、ここにシンボリックリンクを作ってくれるわけです

> ls -la /usr/local/bin
total 18368
drwxrwxr-x  89 username  admin     3026  8 18 10:00 .
drwxrwxr-x  23 username  admin      782  8 12 07:33 ..
lrwxr-xr-x   1 root     wheel       66  5  1  2016 2to3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/2to3
lrwxr-xr-x   1 root     wheel       70  5  1  2016 2to3-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/2to3-3.5
-rwxrwxr-x   1 root     wheel    13972  1 12  2014 acyclic
lrwxr-xr-x   1 username  admin       71  2 15  2016 apm -> /Applications/Atom.app/Contents/Resources/app/apm/node_modules/.bin/apm
lrwxr-xr-x   1 username  admin       53  2 15  2016 atom -> /Applications/Atom.app/Contents/Resources/app/atom.sh
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autoconf -> ../Cellar/autoconf/2.69/bin/autoconf
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoheader -> ../Cellar/autoconf/2.69/bin/autoheader
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autom4te -> ../Cellar/autoconf/2.69/bin/autom4te
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoreconf -> ../Cellar/autoconf/2.69/bin/autoreconf
lrwxr-xr-x   1 username  admin       36  8  3 11:11 autoscan -> ../Cellar/autoconf/2.69/bin/autoscan
lrwxr-xr-x   1 username  admin       38  8  3 11:11 autoupdate -> ../Cellar/autoconf/2.69/bin/autoupdate
-rwxrwxr-x   1 root     wheel    19000  1 12  2014 bcomps
lrwxr-xr-x   1 username  admin       28  7 13 00:52 brew -> /usr/local/Homebrew/bin/brew
lrwxr-xr-x   1 username  admin       37  2 28  2016 c_rehash -> ../Cellar/openssl/1.0.2f/bin/c_rehash
-rwxrwxr-x   1 root     wheel    23884  1 12  2014 ccomps
lrwxr-xr-x   1 504      staff        3  8  9  2016 circo -> dot
-rwxrwxr-x   1 root     wheel    48064  1 12  2014 cluster
-rwxrwxr-x   1 root     wheel    18816  1 12  2014 dijkstra
-rwxrwxr-x   1 root     wheel    18456  1 12  2014 dot
lrwxr-xr-x   1 504      staff        6  8  9  2016 dot2gxl -> gxl2gv
-rwxrwxr-x   1 root     wheel    40608  1 12  2014 dot_builtins
-rwxrwxr-x   1 root     wheel     2085  1 12  2014 dotty
lrwxrwxr-x   1 root     admin       78  5  1  2016 easy_install-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/easy_install-3.5
lrwxr-xr-x   1 504      staff        3  8  9  2016 fdp -> dot
-rwxrwxr-x   1 root     wheel    18304  1 12  2014 gc
-rwxr-xr-x   1 root     admin  7230128  1 29  2016 gdb
-rwxrwxr-x   1 root     wheel    40156  1 12  2014 gml2gv
-rwxrwxr-x   1 root     wheel    24108  1 12  2014 graphml2gv
-rwxrwxr-x   1 root     wheel   751256  1 12  2014 gv-fc-cache
-rwxrwxr-x   1 root     wheel    22808  1 12  2014 gv2gml
lrwxr-xr-x   1 504      staff        6  8  9  2016 gv2gxl -> gxl2gv
-rwxrwxr-x   1 root     wheel    35304  1 12  2014 gvcolor
-rwxrwxr-x   1 root     wheel    26108  1 12  2014 gvgen
-rwxrwxr-x   1 root     wheel   288632  1 12  2014 gvmap
-rwxrwxr-x   1 root     wheel     2190  1 12  2014 gvmap.sh
-rwxrwxr-x   1 root     wheel    33220  1 12  2014 gvpack
-rwxrwxr-x   1 root     wheel    12736  1 12  2014 gvpr
lrwxr-xr-x   1 504      staff        6  8  9  2016 gxl2dot -> gxl2gv
-rwxrwxr-x   1 root     wheel    41692  1 12  2014 gxl2gv
lrwxr-xr-x   1 root     wheel       67  5  1  2016 idle3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/idle3
lrwxr-xr-x   1 root     wheel       69  5  1  2016 idle3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/idle3.5
lrwxr-xr-x   1 username  admin       35  8  3 11:11 ifnames -> ../Cellar/autoconf/2.69/bin/ifnames
-rwxrwxr-x   1 root     wheel   278092  1 12  2014 lefty
-rwxrwxr-x   1 root     wheel     1547  1 12  2014 lneato
-rwxrwxr-x   1 root     wheel    35832  1 12  2014 mm2gv
lrwxr-xr-x   1 504      staff        3  8  9  2016 neato -> dot
-rwxrwxr-x   1 root     wheel    13640  1 12  2014 nop
lrwxr-xr-x   1 username  admin       36  2 28  2016 openssl -> ../Cellar/openssl/1.0.2f/bin/openssl
lrwxr-xr-x   1 504      staff        3  8  9  2016 osage -> dot
lrwxr-xr-x   1 504      staff        3  8  9  2016 patchwork -> dot
lrwxrwxr-x   1 root     admin       66  5  1  2016 pip3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pip3
lrwxrwxr-x   1 root     admin       68  5  1  2016 pip3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pip3.5
lrwxr-xr-x   1 username  admin       42  8  3 11:11 pkg-config -> ../Cellar/pkg-config/0.29.2/bin/pkg-config
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_convert -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_disk_tool -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prl_perf_ctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       62  3 12 09:45 prlcore2dmp -> /Applications/Parallels Desktop.app/Contents/MacOS/prlcore2dmp
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prlctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
lrwxr-xr-x   1 root     admin       58  3 12 09:45 prlexec -> /Applications/Parallels Desktop.app/Contents/MacOS/prlexec
lrwxr-xr-x   1 root     admin       68  3 12 09:45 prlsrvctl -> /Applications/Parallels Desktop.app/Contents/MacOS/parallels_wrapper
-rwxrwxr-x   1 root     wheel    18792  1 12  2014 prune
lrwxr-xr-x   1 username  admin       32  2  3  2016 pstree -> ../Cellar/pstree/2.39/bin/pstree
lrwxr-xr-x   1 root     wheel       68  5  1  2016 pydoc3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3
lrwxr-xr-x   1 root     wheel       70  5  1  2016 pydoc3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pydoc3.5
lrwxr-xr-x   1 root     wheel       69  5  1  2016 python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3
lrwxr-xr-x   1 root     wheel       72  5  1  2016 python3-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-32
lrwxr-xr-x   1 root     wheel       76  5  1  2016 python3-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3-config
lrwxr-xr-x   1 root     wheel       71  5  1  2016 python3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
lrwxr-xr-x   1 root     wheel       74  5  1  2016 python3.5-32 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-32
lrwxr-xr-x   1 root     wheel       78  5  1  2016 python3.5-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5-config
lrwxr-xr-x   1 root     wheel       72  5  1  2016 python3.5m -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m
lrwxr-xr-x   1 root     wheel       79  5  1  2016 python3.5m-config -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5m-config
lrwxr-xr-x   1 root     wheel       68  5  1  2016 pyvenv -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pyvenv
lrwxr-xr-x   1 root     wheel       72  5  1  2016 pyvenv-3.5 -> ../../../Library/Frameworks/Python.framework/Versions/3.5/bin/pyvenv-3.5
lrwxr-xr-x   1 username  admin       31  8  3 11:11 rbenv -> ../Cellar/rbenv/1.1.1/bin/rbenv
lrwxr-xr-x   1 username  admin       47  8  3 11:11 rbenv-install -> ../Cellar/ruby-build/20170726/bin/rbenv-install
lrwxr-xr-x   1 username  admin       49  8  3 11:11 rbenv-uninstall -> ../Cellar/ruby-build/20170726/bin/rbenv-uninstall
lrwxr-xr-x   1 username  admin       44  8  3 11:11 ruby-build -> ../Cellar/ruby-build/20170726/bin/ruby-build
lrwxr-xr-x   1 root     wheel       58 12 14  2015 scan -> /Library/Application Support/Avast/components/cliscan/scan
-rwxrwxr-x   1 root     wheel    19068  1 12  2014 sccmap
lrwxr-xr-x   1 504      staff        3  8  9  2016 sfdp -> dot
lrwxr-xr-x   1 username  admin       35  8 18 10:00 sqlite3 -> ../Cellar/sqlite/3.20.0/bin/sqlite3
-rwxrwxr-x   1 root     wheel    14152  1 12  2014 tred
lrwxr-xr-x   1 504      staff        3  8  9  2016 twopi -> dot
-rwxrwxr-x   1 root     wheel    18376  1 12  2014 unflatten
-rwxrwxr-x   1 root     wheel     1051  1 12  2014 vimdot
lrwxr-xr-x   1 username  admin       32  8  6 08:36 wget -> ../Cellar/wget/1.19.1_1/bin/wget

 

> which sqlite3
/usr/bin/sqlite3
> sqlite3 -version
3.8.10.2 2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4
> sqlite3 --version
3.8.10.2 2015-05-20 18:17:19 2ef4f3a5b1d1d0c4338f8243d40a2452cc1f7fe4

> which sqlite3
/usr/local/bin/sqlite3
> sqlite3 -version
3.20.0 2017-08-01 13:24:15 9501e22dfeebdcefa783575e47c60b514d7c2e0cad73b2a496c0bc4b680900a8

 

広告




 

 


 

Rubyプログラミングのレッスンに興味がある方、レッスン内容を聞いてみたい方、なんなりとお問い合わせください。
無料体験レッスンもありますのでお気軽にどうぞ!!!

 

 

 

参考書籍

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

Windows/Mac/Linuxを使う現役システムエンジニア&プログラマ。オープン系・組み込み系・制御系・Webシステム系と幅広い案件に携わる。C言語やC#やJava等数多くのコンパイラ言語を経験したが、少し飽きてきたので、最近はRubyやPython、WordPressなどのWeb系を修得中。初心者向けのプログラミング教室も運営中。オンライン・対面・出張等でプログラミングをレッスンします。