MacにRubyとRuby on Railsを導入する方法
2018/03/20
こんにちは、okutani(@okutani_t)です。本記事では「MacにRubyとRuby on Railsを導入する手順」を紹介しています。
Ruby on Railsの導入には意外と決まりごとがあるので、一つひとつ順を追って解説します。
今回導入するRubyのバージョンは2.4.1、Ruby on Railsのバージョンは5.1.2です。それぞれ執筆時の最新版です。
いくつかのツールの導入は「Homebrew」というツールを利用しています。Homebrewがよく分からない方は以下の記事を参考に導入を済ませておきましょう。
ちなみに、CentOS7にRuby on Railsを導入する方法については過去に記事にしています。本記事と合わせて参考にしてみてください。
それでは、MacにRubyとRuby on Railsを導入するまでを解説していきます。
スポンサーリンク
rbenvとRubyの導入
まずは、Rubyのバージョン管理兼導入ツールであるrbenvを使って、Rubyを導入します。
rbenv installコマンドを利用するためにruby-buildというツールが必要なので、rbenvとセットで導入しておきます。
まずはHomebrewを使ってrbenvを導入しましょう。以下のコマンドをターミナル上で実行。
$ brew update
$ brew install rbenv ruby-build
rbenvとruby-buildが導入されたかと思います。
~/.bashrc(zshなら~/.zshrc)に以下を追記。
eval "$(rbenv init -)"
シェルを再起動します。
$ source ~/.bashrc
これでrbenvが使えるようになりました。
以下のコマンドで確認してみましょう。
$ rbenv -v
rbenv 1.1.1
rbenvの1.1.1が導入されていることが確認できました。
それでは、Rubyを導入してみましょう。まずはインストールできるRubyのバージョンを確認。
$ rbenv install -l
今回は2.4.1を導入してみます。
$ rbenv install 2.4.1
導入したRubyを利用するように設定します。以下のコマンドを実行。
$ rbenv global 2.4.1
もし、プロジェクトごとにRubyのバージョンを変更したい場合は以下コマンドを利用します。
$ cd proj_name
$ rbenv local 2.4.1
これで柔軟にRubyのバージョンを指定することができますね。便利です。
導入されたRubyは以下のコマンドで確認することができます。
$ rbenv versions
最後に、以下のコマンドでRubyのバージョンを確認してみてください。
$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
もし、バージョンがうまく表示されない場合は、以下のコマンドを実行。rbenvの設定がリフレッシュされます。
$ rbenv rehash
もうすこしrbenvについて詳しく知りたい方は「rbenvを使って複数バージョンのrubyを導入する | vdeep」を参考にしてください。
bundler・Railsの導入
それでは、さっそくRailsを導入して新しいプロジェクトを作成してみましょう。
まずは『bundler』という、gemのパッケージ管理ツールを導入しましょう。Railsもgemで管理されているので、bundlerを使ってRailsを導入していきます。
$ gem install bundler
これでbundlerが導入されました。bundlerの導入確認。
$ bundle -v
「bundler」の実行コマンドは『bundle』になるので注意してください。
Railsはいくつかのツールに依存しているので、以下のコマンドであらかじめ依存関係の問題を解決しておきます。
$ xcode-select --install
$ brew tap homebrew/dupes
$ brew install libxml2 libxslt libiconv
$ gem install nokogiri -- --use-system-libraries
それでは、まずは導入したいRailsのバージョンを確認。
$ gem search -r ^rails$ -a
*** REMOTE GEMS ***
rails (5.1.2, 5.1.1, 5.1.0, ...省略... )
今回は、現在の最新版である5.1.2を導入することにします。
$ gem install rails -v 5.1.2
これでrailsコマンドが使えるようになりました。myappという名前で新規プロジェクトを作成してみます。
$ rails new myapp
上記の方法では、Railsプロジェクトに必要なgemをインストールするコマンド「$ bundle install」を一緒に実行します。このタイミングでbundle installを実行したくない場合は、代わりに以下のコマンドを使います。
$ rails new myapp --skip-bundle
--skip-bundle
を使いたいケースは、プロジェクト以下に直接gemで導入したライブラリを置きたい場合などです。
$ cd myapp
$ bundle install --path vendor/bundle
こうすることで、プロジェクト以下に直接ライブラリを設置することができます。
なお、rails newの時点でデータベースを選択することもできます。rails newコマンドを使うときに-dオプションでPostgreSQLを指定します。
$ rails new myapp -d postgresql --skip-bundle
すこしややこしいですが、よく違いが分からない方はとりあえず「$ rails new myapp」を使えばOKです。
これで新規Railsアプリが生成されました。
おまけ1:Rails本体をプロジェクト以下に直接導入する方法
先ほどの例だと、Railsはgemコマンドで導入していました。
もし、利用するRails自体もプロジェクト以下の「vendor/bundle」に入れたい場合、「$ gem install rails -v 5.1.2」はおこなわずに、代わりに以下の手順をおこないます。
まずは以下のコマンドで「Gemfile」というファイルを作成します。
$ mkdir myapp && cd myapp
$ bundle init
Gemfileの内容を以下のとおり変更。
# frozen_string_literal: true
source 'https://rubygems.org'
gem 'rails', '5.1.2'
bundlerを使って、プロジェクトファイルにある「vendor/bundle」以下に導入。
$ bundle install --path vendor/bundle
上記の手順をおこなうことで、Rails本体もプロジェクト以下に配置することができます。railsコマンドを使うときは「bundle exec」を利用します。
$ bundle exec rails -v
あとは、プロジェクト以下に配置したRailsを使って新規アプリを生成すればOKですね。
$ bundle exec rails new .
Gemfileを上書きしてもOK?的なことを聞かれたらYと答えておきましょう。
これで、プロジェクトディレクトリ以下にRailsアプリケーションが導入されます。
「vendor/bundle」はGit管理したくないので、.gitignoreに以下を追記しておきましょう。
$ vi .gitignore
/vendor/bundle/
もしくは「gitignore/Rails.gitignore at master · github/gitignore」あたりを参考にして、.gitignoreを設置してみてもOKです。
ちょっと手順がややこしいですが、プロジェクト以下にRailsを置きたいときに参考にしてください。
起動確認
作成したアプリを立ち上げて、Railsの初期画面を表示させてみましょう。
プロジェクトディレクトリまで移動し、以下のコマンドでサーバーを立ち上げます。
$ cd myapp
$ rails s
ちなみに、rails本体をプロジェクトに置いている場合は 「$ bundle exec rails s」になるので気をつけましょう。
それでは、ブラウザから「http://localhost:3000」へアクセス。
上記の画面が表示されていればOKです。
停止させるときは、ターミナルから control + c とすればOKです。
これでMac上でRuby on Railsの開発をおこなうことができますね。
これからRuby on Railsを学習していく方の参考になれば幸いです。
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク