以前、Cloud9というサービスを使ってRuby on Railsの開発環境構築手順をご紹介したブログを書きました。
Cloud9は、開発環境を手軽に設定できるという意味では優れものなため、新しい言語の学習コストが下がるのがメリットです。
でも、Cloud9はインターネットに接続していることが前提のため、たとえばインターネットに繋がらない環境では開発を行うことができません。
開発者の方であれば、インターネットに繋がらない環境で作業をすることはあまりないかと思いますが・・・たとえば新幹線での移動中にサクッと開発したい時などは、やっぱりPC内のローカル環境で開発できたら、インターネット環境に依存することもないので、良いですよね!
ということで、今回はMacでRuby on Railsの開発環境構築をするための手順を分かりやすくまとめてみました!
お役に立てれば幸いです!
目次
Ruby on Railsの環境を構築するのに必要なものたちについて
よく、色々なサイトでRuby on Railsの環境を構築方法が紹介されていますが、「Railsの環境を構築するにはこのツールが必要です」という事は書かれていても、各ツールが何の役割をしているのか、そのコマンドがなぜ必要なのかが説明されている記事は意外と多くないのです。
なので、今回は、MacでRuby on Railsの環境を構築するのに必要なものと、「なぜそれらが必要なのか」「このコマンドは何のためにおこなうのか」についても紹介していこうと思います!
手順だけ知ればいいという方は、飛ばして次の章から読んでみてくださいね!
Railsについて&MacにおけるRubyについて&rbenvについて
Ruby on Railsは、Rubyという言語でできています。
そのため、MacでRuby on Railsの環境を構築するには、当然ながらRubyがMacにインストールされていることが、必要条件となってきます。
そして、Ruby on Railsという名前の通り、Ruby on Railsの環境を構築するには、railsが必要になります
実は、MacにはデフォルトでRubyが入っています。
しかし、Rubyも時が進むに連れてバージョンがアップされていくもの。
Macを買ったり、新しいMac OSが出た直後ならまだしも、Rubyのバージョンがアップされていくのに、Macにデフォルトで入っている古いRubyしか使えないということでは、Ruby on Railsの開発環境を整えていくにも、いつか限界が生じてきます。
また、自分が1人で永遠とRubyプロジェクトを作り続けて行くのであれば、同一条件(バージョン)のRubyを使用し続けるのもいいかもしれませんが、他の方も関わる色々なプロジェクトに携わる時などは、特定のバージョンのRuby以外にも様々なバージョンのRubyを必要とするときがあります。
そんな時に、簡単にRubyのバージョンを切り替えたり、複数のRubyプロジェクトで、プロジェクトに応じてRubyのバージョンを切り替え・使い分けできるようにするためのバージョン管理システムがrbenvというものです。
ruby-buildについて
rbenvを使用するためには、rbenv installというコマンドが必要です。
そして、この「rbenv install」というコマンドを使用するには、ruby-buildをインストールする必要があります。
Homebrewについて
これまでにご紹介したrbenvやruby-buildは、デフォルトでMacに入っているものではありません。
Homebrewは、Macでデフォルトでは入っていないようなツールやソフトのインストール&削除を簡単に行うことができるパッケージ管理ソフトと言われるものです。
Homebrewによって、rbenvやruby-buildのインストールはもちろん、バージョンごとに各ツールをインストールすることも可能になります!
Homebrewをインストールする
ということで、各ツールの導入をしていきましょう!
まずは、Homebrewからです!
Homebrewをインストールする前に
Homebrewをインストールするためには、Command Line Tools for Xcodeというものをインストールする必要があります。
すでにインストール済の方は読み飛ばしていただいて構いませんが、インストールされていない方は、Command Line Tools for Xcodeのインストールから手順を見ていきましょう!
ちなみに、現在Xcodeがインストールされている場合は、Xcodeを開いてメニューバーのXcode→About Xcodeから現在のXcodeのバージョンを確認することができます。
Xcodeをインストール or 新しいバージョンに更新する
僕は今回のブログを書くにあたり(初稿である2017年2月時点)、ここのところ使っていなかったMacBook Pro(旧型)のOSをSierraにアップデートして、Railsを入れ直してみるということを実施しました。
手始めにCommand Line Tools for Xcodeをインストールしようとしたところ、新しいバージョンのXcodeが必要という表示が出ました。
ということで、僕のケースのように、MacのOSバージョンやXcodeのバージョンによっては、Xcode自体を新しいバージョンにする必要があります。
すでにXcodeがインストールされている場合は、必要に応じて新しいバージョンにアップデートし、Xcodeがインストールされていない場合は、新規インストールをしましょう!
いずれにしても、新しいバージョンのXcodeをインストールする必要があるので、まずはその手順を見ていきます。
といってもXcodeのインストールは非常に簡単で、App StoreからXcodeアプリを選択し、インストールすればOKです!
すでにインストールされているXcodeがあり、バージョンが古い場合は、既存のXcodeアプリを削除して、新しいバージョンのものをインストールすればOKです!
Command Line Tools for Xcodeをインストール
新しいバージョンのXcodeをインストールできたら、次にCommand Line Tools for Xcodeをインストールします。
Command Line Tools for Xcodeは、Appleのデベロッパーページにログインし、必要なバージョンのCommand Line Tools for Xcodeをインストールします。
今回の事例では、Command Line Tools(macOS 10.12) for Xcode 8.2をインストールすることにしています。
Command Line Tools for Xcodeのインストールパッケージをダウンロードしたら、インストーラーが表示されますので、ダブルクリックします。
インストール画面が表示されるので、ここは基本的に画面の指示通りに進んでいけばOKです。
インストール完了!
Command Line Tools for Xcodeを無事にインストールすることができました!
Home brewをインストール
ようやくHome brewをインストールする段階になりました。
Macのターミナル(通称:黒い画面)を起動します。
Home brewの公式Webサイトに飛ぶと、いきなり「このコマンドをターミナルに貼り付けて実行してください」という指示のもと、指定のコマンドがありますので、そのままターミナルに貼り付けて実行します。
一応、2017年2月時点で公式サイトに書かれている指定コマンドを、この記事にも貼り付けておきます。
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
途中、パスワードを聞かれる画面になるので、Macそのものにログインするためのパスワードを入力します。
正しいパスワードを入力すれば、いろいろインストールしているような感じでターミナルの画面が動いていき、最終的にHome brewのインストールが完了します!
もしちゃんとHomebrewがインストールできているか不安な場合は、「brew -v」というコマンドを入力します。
きちんとHome brewのバージョンを示す数字が出てくれば、Homebrewが間違いなくインストールされていることになります!
ちなみに今回の例でいうと、Homebrewの1.1.0バージョンがインストールされているという意味になります。
Rubyのインストール
次にRuby on Railsを構成している言語であるRubyのインストールをします。
今回は、最新のバージョンのRubyをインストールしていきます!
ここで出てくるのが、前述もさせていただきましたがrbenv。rbenvは、Ruby on Railsの開発元である37signalsが提供しているんだそうです。
先ほどもご紹介しましたが、rbenvを使うと、Rubyの過去バージョンやら最新バージョンやらへの切り替えを簡単に行うことができるので、まずはrbenvをインストールします!
ruby-buildのインストール
そして、先ほどもご紹介したように、rbenvをインストールするにはruby-buildが必要なので、まずはruby-buildのインストールから始めます。
ターミナルで上記コマンドを実行することで、ruby-buildをインストールすることが可能です。
いろいろなプログラムが実行し終わるまでは、ターミナルはNo touchで・・・・
rbenvのインストール
次に、rbenv自体のインストールをします。
ターミナルで上記コマンドを実行することで、rbenvをインストールすることが可能です。
やはり、いろいろなプログラムが実行し終わるまでは、ターミナルはNo touchで・・・・
bash_profileの設定をいじる
次に、PCログイン時にrbenvの初期化を行う設定をするためにbash_profileファイルをいじります。
bash_profileファイルは、ユーザーのトップディレクトリにあるので、「cd」のみをコマンドで実行すると、ユーザーのトップディレクトリに移動することができるんです!
.bash_profileって??
.bash_profileって、そもそも何なんでしょうか??
.bash_profileは、ユーザーがMacにログインした際に一度だけ自動的に読み込まれるファイルのことです。
たとえば、通常だとターミナルを立ち上げた時にはMacユーザーのHomeディレクトリが読み込まれるのですが、別の場所を読み込んだ状態でターミナルを開きたい時は、.bash_profileの設定を変更することで実現することができます。
.bash_profileを触って設定を変えてみる
ここからbash_profile方法をいじる方法はいろいろあるようですが、今回はひとまず
というコマンドを実行します!
こうするとターミナルがviというエディタに変わり、ターミナル上で指定したファイルがviエディタで編集できるようになります。
viエディタを使って、ここから.bash_profileファイルの編集をしていきます。
まずはaを入力してEnterを押します。
続いて上記のコマンドをコピペ。
コピペしたらescapeキーを押して、「:wq」を入力し、Enterキーを実行します!
そして最後に上記のコマンドを実行します!
なぜbash_profileをいじる必要があるのか
ちなみに、ここまでご紹介した.bash_profileにおこなった作業、なぜ必要なのかというのも自分なりにまとめてみました。
(誤りなどもしあれば、ご指摘いただけると幸いです)
そもそも今回ご紹介しているRuby on Railsの環境構築の流れは、「MacデフォルトのRubyを使わずにrbenvでインストールしたRubyを使用する」というところから派生しています。
MacデフォルトのRubyは、/usr/binというところに入っているのですが、rbenvでインストールしたRubyは、/Users/ユーザー名/.rbenv/shims/に入ります。
そのため、ターミナル(コマンド)からRubyを実行するときに、MacデフォルトのRubyではなく、rbenvの中のRubyを見に行ってRubyを実行するように、切り替えをする必要があります。
今回のように複数の箇所にRubyが存在する場合、都度都度Rubyのある場所のパスを頭から入力せずとも、ある程度省略した形で書いても「どこのパスを見に行ってRubyを実行するようになっているのか」がわかるものとして、環境変数というものがあります。
環境変数の中身を確認するには、ターミナルでecho $PATHと打つことで、確認することができます。
試しに、.bash_profileの中にrbenv initを書いて、source ~/.bash_profileを実行する前と後でecho $PATHの中身を確認してみると・・・
##source ~/.bash_profileを実行する前の$PATHの中身
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
##source ~/.bash_profileを実行した後の$PATHの中身
/Users/tatsuyakosuge/.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
僕の場合は、上述したような感じで、$PATHの中身が変わっていました。
$PATHの中身は「:」で区切られています。
例えば僕の場合、 rubyコマンドを実行した時には
- まずは/Users/tatsuyakosuge/.rbenv/shims/ の中にRubyがあるかを見に行く
- もしなければ、/usr/bin/内にRubyがあるかを見に行く
- さらになければ、/bin/内にRubyがあるかを見に行く
といった流れで、左にあるものほど優先的にコマンドの実行ファイルが存在するかを探しに行く、というものになっています。
eval “$(rbenv init -)”を.bash_profileファイルに書いてsourceコマンドで読み込みすることによって、「Macにログインしたら、たとえばRubyコマンドを実行するときはrbenv内のRubyを実行するように設定しておく」ということを実現することができるのです!
Rubyのインストール
ようやくRuby本体のインストールです!
上記コマンドを押すと、現在インストールできるRubyのバージョン一覧(それ以外もいろいろと表示されますが)がターミナル上に表示されます!
僕が試した時には2.4.0が最新のバージョンでした!
この数字、覚えておいてくださいね!
それでは、Ruby本体をインストールしていきます!
先ほど最新安定版のRubyが2.4.0であることを確認したので
このようにRubyのインストールを試みます!
今回はRubyのバージョン2.4.0をインストールしてみます。
/Users/ユーザー名/.rbenv/shims/フォルダ内にrubyがインストールされているのがわかりますね!
Railsのインストール
そして、本丸であるRailsをインストールします。
Rails自体は、
というコマンドで実行することができます。
(うまくいかない場合は、sudo gem install railsと打ってみましょう。パスワードを求められたらMacにログインするときのパスワードを入力します)
gemは、Rubyをインストールするとデフォルトでついてくる、Rubyで構成されたパッケージ管理システムです。
Rails自体もgemで出来ています。
次に、railsを動かすのに必要なgemを、gem同士がバージョンの互換性を保った状態で使えるようにまとめてインストールして利用できるようにするために、以下のコマンドを入力します!
そしてRubyやgemをインストール・更新した時は、下記コマンドを必ず実行するようになります!
最後にrails -vとコマンドを入力し、きちんとインストールされているRailsのバージョンが表示されていれば、完了です!
Railsのインストールがうまくいかない時に確認したいこと
ここの章は随時更新していきたいと思っているのですが、僕がよく引っかかっていた例をご紹介します。お恥ずかしいですが・・・
たとえば、今回の場合バージョン2.4.0のRubyをインストールしたはずなのに、なぜがruby -vコマンドでRubyのバージョンを確認すると、バージョン2.0.0など古いバージョンのRubyを読んでいるという時がありました。
このせいで、いろいろ支障があったり、「Ruby2.4以上をインストールして使いなさい」とか怒られたり・・・
そんな時は、まずwhich rubyを実行します。
which rubyコマンドはMacの中のどこにあるRubyを読み込んで実行しようとしているのかを確認するコマンドなのですが、上記の場合Macにデフォルトで入っているRubyを読み込んでいる、という意味になります。
そして、次に改めてruby -vコマンドを実行します。
この時、rbenvの中に入れたはずのRubyのバージョンが表示されておらず、MacのデフォルトのRubyバージョンが表示されてしまっていたら、
などとして、使用するRubyを改めて切り替えるように実行してみましょう!
まとめ
長くなりましたが、MacにRuby on Railsの環境をインストールする方法について書いてみました!
適宜、この記事はブラッシュアップしていきたいと思います!