[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経由でインストール可能なリストは、

と打てばOK

 

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

[/aside]

 

前提知識

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

 

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

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

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

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

 

whichコマンドを知ろう

※Windowsの場合はwhereコマンド

とか

とかと打てば、インストール場所が分かります
※ただし、環境変数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: /usr/bin/sqlite3: No such file or directory

↓と表示されるとインストールされています
-rwxr-xr-x 1 root wheel 172592 7 9 2016 /usr/bin/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の場所を移動していたり、違う場所にある場合はちょっとこの記事では分かりません

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

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

 

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

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

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

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

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

 

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

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

/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」を付けるべきなのか、付けても付けなくても同じなのか、ちょっと分からないです。多分どっちでも同じだろうけど

 

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

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

 

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

 

 

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

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

 

意訳
このフォーミュラ(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に追加する

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

こんなの出てるよ

 

パターン3:brew installを使う

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

 

【オマケ】別に読まなくてもいいよ: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

 

opt

 

bin

 

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

ログを見てみる

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

 

Cellar

※変化無いです

 

opt

※変化無いです

 

bin

が増えている

 

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

 

 

広告




 

 


 

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

 

 

 

参考書籍

コメントを残す

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

ABOUTこの記事をかいた人

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