初心者でもかんたん!Ruby on Rails の開発環境の構築手順(Mac/Windows 両対応)

こんにちは! システムエンジニアのオオイシです。

Ruby または Ruby on Rails のプログラミングを学びたいのに、開発環境の構築で諦めていませんか? 例えば、

  • ググっても開発環境の構築方法がわからない・・・
  • 開発環境の構築方法がいろいろありすぎて何か正しいのかわからない・・・
  • 挫折した・・・

他にもサーバー管理の知識はなくても、

  • とにかく早く環境が作りたい!
  • クラウド上の開発環境ではなくパソコン上で作りたい

なんて人もいらっしゃるようです。

そんなあなたに!!
これから解説する手順にどおりにやれば、Ruby と Ruby on Rails の開発環境が簡単につくれる方法を教えちゃいます!

すべて、コピペで作業できるようにしました。

本記事では、あなたのパソコン上に仮想環境(※後述)を構築して開発環境を作成する方法を紹介します。ご期待ください!

目次

仮想環境とは

仮想環境とは、簡単に言うと、1台のコンピュータで複数のコンピュータを動させる技術のことを指します。

例えば、あなたが Mac を所有していたとして、その上にWindows、 Linux を同時に動作させることができるのです!

仮想環境のメリットはいろいろありますが、本記事で述べている範囲で言うと、

  • 環境を作って不要になればすぐ捨てられる
  • 複数人で作業している場合に、各々が所有しているパソコン環境に関係なく、同じ環境をそろえられる

があげられます。

仮想環境を作るには、仮想化ソフトのインストールが必要になりますが、後にインストール方法を紹介しているので読んでくださいね。

仮想環境へインストールする OS としては CentOS(Linux) を選びました。なぜならば、Linux は Ruby と親和性が高いからです。

Vagrant とは

Vagrant とは

Vagrant(ベイグラント)とは、仮想環境を簡単に構築・管理するツールです。
Vagrant は仮想環境そのものではなく、VirtualBox や VMWare など仮想化ソフトをコマンドラインから簡単に統一的に操作するためのツールです。

Vagrant は何がうれしいのか

次のことが実現できるようになります。

すぐに使える仮想環境を構築できる
・環境構築を自動化できる
・開発チームで同一の環境を構築できる

今回の記事では、説明しませんが、Ruby on Rails 環境構築までをコマンド一つで準備することが可能です。

すごい!

Vagrant でよく使うコマンドをまとめました。

よく使う vagrant コマンド一覧

vagrant up 仮想環境を起動する
vagrant halt 仮想環境を停止する
vagrant status 仮想環境の起動状態を確認する
vagrant ssh 仮想環境に ssh ログインする
vagrant destroy 作成した仮想環境を削除する

簡単に Ruby on Rails 環境を構築する手順

easy_ruby

構築する開発環境の全体概要

前置きが長くなりましたが、これから開発環境を作っていきましょう!

本記事が想定するパソコンの環境になります。

Mac OS X Mavericks 以降 メモリ 8Gbyte 以上
Windows Windows 7以降 メモリ 4Gbyte 以上

これから、あなたのパソコン上に Ruby または Ruby on Rails の環境を作る手順を作っていきますが、
まずは、図を見て全体の構成をイメージしてください。

 

overall_view

 

図上の [解説1] を見てください。

あなたのパソコンに仮想環境を作成し、別のOSをインストールして、Ruby on Rails の開発環境を作成します。
本記事では、仮想環境上に CentOS 7(Linux)をインストールします。

え?仮想環境を自分で作るのは難しいのでは!?

と思われるかもしれませんが、心配ありません。

図上の [解説2]Vagrant (ベイグラント)を使えば簡単にできます。

ちなみにですが、vagrant は ruby製のツールなんですよ!

そして、あなたが開発するときには、Mac または Windows にインストールした ターミナルコマンドプロンプト)やエディタ を使用して、仮想環境上の CentoOS で作業することになります。(※図上の [解説3]

なお、Linux の使い方やこれから説明するコマンドの詳細については、可能な範囲で省略しています。
Ruby on Rails の環境を簡単に構築することが目的なのでご理解ください。

では、作業を始めましょう!

VirtualBox をインストール

VirtualBox (バーチャルボックス)とは、PC上で別のOSをインストールするための仮想化ソフトです。
Oracle のDownload VirtualBoxで Mac OS X または Windows のパッケージ最新版をダウンロードしてインストールしてください

download_virtual_box1

インストール方法は、Mac または Windows の環境に応じて進めるだけなので、詳細説明は割愛します。

Vagrant をインストール

Vagrant(ベイグラント)とは、前述したとおり仮想環境の構築や管理を楽にできるツールです。
Downoad Vagrant ページ で Mac または Windows のパッケージ最新版をダウンロードしてインストールしてください。

download_vagrant

こちらもインストーラに従うだけでインストールが完了です。

Vagrant で Cent OS (Linux) をインストール

ターミナル(コマンドプロンプト)を立ち上げて、
Vagrant がインストールできたことを確認します。

次のコマンドを入力してください。

コード中の $コマンドプロンプトを意味しています。

$ vagrant -v
Vagrant 2.0.1

インストールが確認できましたか?

次に、CentOS インストール用のディレクトリ(Windows では フォルダ)を作成し、作成したディレクトリへ移動します。

作成場所は任意ですが、本記事では、 ~/vagrant/centos7 としました。

$ mkdir -p vagrant/centos7
$ cd vagrant/centos7

 

次に仮想環境(VirtualBox)へ、CentOS 7 をインストールします。

$ vagrant init centos/7  # CentOS7用のVagrant設定ファイルを作成する

Vagrantfileファイルがカレントディレクトリへ作成されるので、任意のエディタで開いてください。
仮想環境の上 CentOS の IP アドレスを指定するためにコメントを外します。

# config.vm.network "private_network", ip: "192.168.33.10"
↓
config.vm.network "private_network", ip: "192.168.33.10"

次に仮想環境を起動します。

初回は10分程度かかります。

$ vagrant up   

仮想環境上にCentOS 7 がインストールできました!

簡単でしょ?

仮想環境(CentOS)にログインしよう!

さて、仮想環境上のCentOS にログインします。
ログインするには、vagrant ssh コマンドを実行します。

$ vagrant ssh
[vagrant@localhost ~]$          # Cent OS 上のプロンプト 

ここからは 仮想環境にインストールした CentoOS の説明になります。

仮想環境(CentOS)の起動と停止方法

次に進む前に selinux (エス・イー・リナックス)を無効化しておきます。

selinux とは、Linux のセキュリティ関連機能なのですが、開発環境ではトラブルの元になるので先に対応します。

※開発環境の構築とは無関係なので詳細な説明は割愛します

この作業は 仮想環境の再起動が必要ですので、Vagrant の起動と終了コマンドをついでに覚えておいてください。

# selinux を無効化する
$ sudo sed -i "s/(^SELINUX=).*/disabled/" /etc/selinux/config
# CentOS からログアウトする
$ exit

# Mac または Windows から CentOS をシャットダウンする
$ vagrant halt
   
$ vagrant up # Cent OS にログイン    

$ vagrant ssh   # Cent OS にログイン
[vagrant@localhost ~]$

rbenv をインストール

rbenv (アール・ビー・エンブ)とは、Rubyのバージョンを変更するためのツールです。

本記事では、Rubyのバージョン変更は行いませんが、Ruby をインストールする Plugin を利用するために追加します。

前準備として、rbenv をインストールするために必要な yum パッケージを入れます。

$ sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel gcc-c++ libicu-devel cmake vim

つづいて、rbenv をインストールします。

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

インストールが完了しました。rbenv が使えることを確認します。

$ rbenv --version
rbenv 1.1.1-28-gb943955  # version はインストール時期によって異なります

ruby-buildプラグイン を追加

rbenv へ Ruby をインストールできるようにするプラグインを追加します。

$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Ruby をインストール

Ruby バージョンは 2.4.2 をインストールします。
インストールするのに5~10分ほど時間がかかります。

$ rbenv install 2.4.2

# CentOS環境全体で使えるrubyのバージョンを指定
$ rbenv global 2.4.2    

# ruby のバージョンや設定を反映
$ rbenv rehash     
    
$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]        

おめでとうございます!ruby がインストールできました!

Bundler のインストール

Ruby を使う上で必須となるのが、Bundler(バンドラー)です。

Bundlerとは、Rubyのライブラリ管理ツールのことで、Ruby on Rails や、本記事で紹介した Vagrant も Bundler でライブラリ管理しています。

Ruby を使う上で Bundler は絶対利用すると言っていいので、インストールは必須です!

では、インストールしましょう。

$ gem install bundler
$ rbenv rehash

$ bundle -v # bundler がインストールされたことを確認する
Bundler version 1.16.0

簡単ですね!

Ruby on Rails のインストール

※ Ruby on Rails が必要ない人は次項に進んでください。

インストール場所は、~/app/samurai/sample1 を想定しました。

インストールする Ruby on Rails のバージョンは、最新版にします。

$ mkdir -p app/samurai/sample1  # インストールディレクトリを作成
$ cd app/samurai/sample1/

# Bundler で管理する gem(ライブラリのかたまり)を記述する⇒
# Gemfile ファイルを作成 
$ bundle init

# gem “rails” のコメントを外す
$ sed -i 's/# gem "rails"/gem "rails", "~> 5.1.0"/g' Gemfile

# Ruby on Rails と関連する gem を自動でインストールする
$ bundle install --path vendor/bundler

# Ruby on Rails の雛形を作成
$ bundle exec rails new .   
     
# javascript のランタイムの gem のコメントを外す
$ sed -i "s/# gem 'therubyracer'/gem 'therubyracer'/g" Gemfile

# javascript のランタイムをインストールする
$ bundle install  

Ruby on Rails のインストール作業は以上です。

Ruby on Rails を起動してみよう!

rails サーバーを起動して、ブラウザで画面が表示されるのかを確認して見ましょう。

$ bin/rails s

Webブラウザで、http://192.168.33.10:3000/  にアクセスしてください。

rails_root

おめでとうございます!

無事に Ruby on Rails のインストールが完了しました!

以下は、本記事で紹介した vagrant と 開発環境構築を便利にするツールの紹介です!

開発しやすい環境を作る

仮想環境で開発しやすい環境を作るためには、ちょっとした環境作りが必要になります。

なぜ環境作りが必要かというと、CentOSでは Mac や Windows と違って高機能なエディタが使えないからです。

CentOS(Linux)上で使える高機能なエディタとして、vim(ヴィム。CUIで動作するエディタ)が超定番ですが、操作方法が独特なのでプログラミング初心者が使える人はまれです。

vim もいいですが、Mac や Windows で高機能なエディタを使いたいですよね!?

高機能なエディタを仮想環境でも使える環境を整備しましょう。

仮想環境で高機能エディタを使うには

sshfs(エス・エス・エイチ・エフエス) をインストールすれば解決できます。

sshfsとは、遠隔地のサーバーのディレクトリを、ローカル(あなたの Mac や Windows )環境のディレクトリ として利用するためのツールです。

インストールすると、あなたのパソコンから仮想環境上のCentOSへ簡単に接続することができます。

Mac や Windows から高機能なエディタを使いたい場合は必須の作業になります。

sshfs のインストール(Mac 編)

FUSE for macOS の最新版を ダウンロードしてインストールします。

SSHFS の最新版をインストールします。

インストールされたことをターミナルから確認します。

$ sshfs --version
SSHFS version 2.5 (OSXFUSE SSHFS 2.5.0)
OSXFUSE 3.7.1
FUSE library version: 2.9.7
fuse: no mount point

本記事で作った 仮想環境のCentOS に接続してみます。

$ mkdir app  # CentOSへ接続するディレクトを作成
$ sshfs vagrant@192.168.33.10:/home/vagrant/app app

Mac からCentOS上のディレクトリが見えることを確認します。

$ ls -l app/samurai
drwxrwxr-x  1 ooishimakoto  staff  275 12 11 11:44 sample1

先ほど作成した、Ruby on Rails のディレクトリが見えましたね?

sshfs のインストール(Windows 編)

Windows で sshfs を利用する方法に詳しい説明があるので、こちらが参考になります。

本記事で作成した仮想環境上のCentOSに接続するための設定は、

Host 192.168.33.10
Port 22
Username vagrant
Authantication method PrivateKey
PrivateKey [vagrantインストールフォルダ].vagrantmachinesdefaultvirtualboxprivate_key
password vagrant

sshfs_manager

となります。接続できると、

sshfs_dir

のように、Windows エクスプローラから見ることができます。

Ruby の開発で使えるおすすめのエディタ

Sublime Text 3(有料ライセンスあり)
または
Atom(無料)
がおすすめです。

どちらも高機能で使いやすいのですが、Atomは若干重いのが難点です。重くなければ Atom がとっつきやすさで最強です!しかもフリーライセンス。

Windows でかっこいいターミナルを使うためには

Windows だと、Mac のようなかっこいいターミナルがなかったのですが、
git bash for windows + ConEmu の組み合わせが最強でした。

conemu

git bash for windows は、Windows 環境で Linux のような bash git を使えるツールです。

ConEmu は Windows のコマンドプロンプトが使いやすく、かつかっこよくなるツールです。

設定は、
Git bash + ConEmu+AutoHotkeyでLinuxのようなターミナル環境を整える を参考にして見てください。

まとめ

いかかでしたか?

Ruby や Ruby on Rails のローカルの開発環境を、仮想環境で構築する手順について書きました。
この記事がRubyプログラミングの世界の面白さを知っていただけるキッカケになれば幸いです。

でも、「自分一人で学習を進めるのに不安がある・・・

という方は『無料カウンセリング』で弊社コンサルタントと一緒にあなた専用の学習カリキュラムを考えてみてはいかがでしょうか?

詳しくは以下をご覧ください。

この記事を書いた人

システムエンジニア歴15年のオオイシです!好物は Java と Ruby。プログラミング、システムアーキテクトからマネジメントに到るまでなんでも食べます。
システム開発の相談やお困りごとがあればお気軽に
makoto.oishi.0705@gmail.com まで連絡頂けると幸いです

目次