はじめに
簡単にサクッとRuby on Railsの環境を作りたいかつ、ローカルのPC内はクリーンに保っておきたいと思いVagrantで環境を作ることにした。 rbenvでプロジェクトごとにRubyのバージョンも様々なプロジェクトに対応出来るようにするのがゴール。
環境は以下
- Vagrant 1.9.2
- Virtualbox 5.1.14
まずは上記のVagrantとVirtualboxを各種OSに合わせてインストールします。
MacでHomebrewを入れていればcask形式でもinstallが出来ます
$ brew cask install virtualbox
$ brew cask install vagrant
1.rails-dev-boxをcloneする
適当に開発用のフォルダを作り、そこにrails-dev-boxをcloneする。
cloneが終わり、vagrant up
をするとプロビジョニングが走るため、10数分以上待つこともあります。
// homeディレクトリに移動
$ cd
// Workspaceフォルダを作成
$ mkdir Workspace
// Workspace内に移動
$ cd Workspace
// rails-dev-boxをcloneする
$ git clone https://github.com/rails/rails-dev-box.git
// rails-dev-box内に移動
$ cd rails-dev-box
// vagrantを起動
$ vagrant up
2.rbenvとruby-buildを追加する
rbenvを使うことでプロジェクトごとにRubyのバージョンを切り替えられて便利なので、rbenvを導入します。
// vagrantが起動している状態で
$ vagrant ssh
// apt-getを最新にしておく
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install -y libreadline-dev
// rbenvをclone
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
// ruby-buildをclone
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
// 追加したrbenvまでのパスを追加
$ export PATH="$HOME/.rbenv/bin:$PATH"
$ eval "$(rbenv init -)"
$ source ~/.profile
3.任意のバージョンのRubyをインストール
// インストール可能バージョンの確認
$ rbenv install --list
//使いたいバージョンのRubyをインストール。以下例
$ rbenv install 2.4.0
// インストールしたバージョンが入っているか確認
$ rbenv versions
// 全体で使うRubyのバージョンを指定
$ rbenv global バージョン
//プロジェクトごとに切り替えたい場合
//プロジェクトのルートディレクトリに移動して
$ rbenv local バージョン
4.rails newをやってみる
実際にrails newが出来るところまでやってみる
// rails-dev-boxディレクトリまで移動してから起動
$ vagrant up
// 起動を確認
$ vagrant status
// vagrant内に入る
$ vagrant ssh
// rubyのバージョンを確認
$ ruby -v
// 作業ディレクトリに移動
$ cd /vagrant/
// rails newする
$ rails new app名
// app名フォルダに移動
$ cd app名
// railsサーバーを起動する
$ rails s -b 0.0.0.0
ここまでやったらhttp://0.0.0.0:3000をブラウザのURLバーに入力することでRailsのwelcome画面が確認できるかと思います。
5.編集方法
サーバーの起動やrailsコマンドなどはsshでvagrant内に入って行わなければいけませんが、ファイルの編集はいちいちsshをしなくても行うことが出来ます。
sshをした先の/vagrant/app名
はVagrantfileがあるディレクトリとリンクしているので、そこのファイル群を編集すればお手元のテキストエディタなんかで編集ができます。
6.vagrantコマンド一覧
// 起動
$ vagrant up
// ステータスを確認
$ vagrant status
// 停止
$ vagrant halt
// ssh接続
$ vagrant ssh
間違っている箇所等ありましたら、コメント頂ければとおもいます。