Edited at

Vagrant + VirtualBoxでつくるRails 5の環境構築

More than 3 years have passed since last update.

Rails 5.0.0.beta1が発表されました。

いち早く新たなバージョンに手を付け、あわよくばRailsにプルリクできたらいいなー。と思いたち、このエントリーを書きました。

バージョンは以下のとおりです

Vagrant 1.8

VirtualBox 5.0.12

Rails 5.0.0.beta1

Ruby 2.2.3

rbenv 1.0.0

Node.js 0.10.37

PostgreSQL 9.3

Redis 3.0.6

ということで、Vagrant + VirtualBoxでつくるRails 5の環境構築です。


1. VagrantとVirtualBoxをインストール

Vagrant はこちら からインストール

VirtualBox はこちら からインストール


2. Vagrantのセットアップ

$ cd your_project_directory

$ vagrant init

Vagrantfileが生成されるので、編集します


Vagrantfile

# -*- mode: ruby -*-

# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64" # Ubuntu 14.04 を使用
config.vm.network "forwarded_port", guest: 3000, host: 3000 # Railsで利用するポートを設定
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" # メモリを多めに設定
end
end

VirtualBoxを起動します

$ vagrant up # ubuntu/trusty64のboxがダウンロードされていない場合は、しばらく時間がかかります

起動が済んだら、ログインします

$ vagrant ssh


3. Ubuntuのパッケージをセットアップ

パッケージをアップデートして、必要なパッケージをインストールします

$ sudo apt-get -y update

$ sudo apt-get -y install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev


4. Rubyのセットアップ

rbenvでRubyをセットアップします

$ cd

$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
$ echo 'gem: --no-ri --no-rdoc' > ~/.gemrc
$ exec $SHELL

Rubyとbundlerをインストール

$ rbenv install 2.2.3 # ※結構時間がかかります

$ rbenv global 2.2.3
$ rbenv rehash
$ gem install bundler


5. Node.jsのセットアップ

Railsで必要なので、Node.jsも入れます

$ sudo add-apt-repository -y ppa:chris-lea/node.js

$ sudo apt-get -y update
$ sudo apt-get -y install nodejs


6. PostgresSQLのセットアップ

Herokuが好きなので、DBはPostgresSQLです。(SQLite3を使う方は1.で入れたので、セットアップ不要です)

$ sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"

$ wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
$ sudo apt-get -y update
$ sudo apt-get -y install postgresql-common
$ sudo apt-get -y install postgresql-9.3 libpq-dev
$ sudo -u postgres createuser vagrant -s # vagrantユーザを追加
$ sudo -u postgres psql # psqlにログインして
postgres=# \password vagrant # vagrantユーザにパスワードを設定
Enter new password: # 何も入力せずにEnter
Enter it again: # 何も入力せずにEnter
postgres=# \q # psqlプロンプト終了

※開発環境なので、パスワード無しにしましたが、本番環境では強いパスワードの設定をお忘れなく


7. Redisのセットアップ

Rails 5の新機能であるActionCableを利用するために、Redisをインストールします

$ sudo apt-get -y install tcl8.5

$ wget http://download.redis.io/releases/redis-stable.tar.gz
$ tar xzf redis-stable.tar.gz
$ cd redis-stable
$ make
$ make test
$ sudo make install
$ cd utils
$ sudo ./install_server.sh # すべてEnterで進める

以上で下準備が終了です


8. Railsプロジェクトの追加

個人的には、現在設定しているRubyに直接gemを追加していくのは好きではないので、

以下のようにプロジェクトをつくっていきます。

$ cd /vagrant

$ mdkir blog
$ cd blog
$ bundle init

生成されたGemfileを編集します


Gemfile

# A sample Gemfile

source "https://rubygems.org"

gem "rails", "5.0.0.beta1"


Railsをプロジェクトのgemとしてインストールします


A. ホストがMacの場合

$ bundle install --path vendor/bundle


B. ホストがWindowsの場合


※共有フォルダの/vagrant配下にnative extensionsを利用するgemをインストールすると、エラーなるための処置です。/vagrant配下以外なら問題ないはず。

$ sudo mkdir /usr/local/src/bundles

$ sudo chown -R vagrant:vagrant /usr/local/src/bundles
$ bundle install --path /usr/local/src/bundles/blog


9. アプリケーションを作成する

$ bundle exec rails new . --database=postgresql --skip-spring

...
Overwrite /vagrant/blog/Gemfile? (enter "h" for help) [Ynaqdh] Y # Gemfileは上書きするの Y を入力
...
$ bin/rails db:create
$ bin/rails g scaffold post title:string content:text
$ bin/rails db:migrate
$ bin/rails s -b 0.0.0.0

http://localhost:3000/posts にブラウザでアクセスする


10. 備考

ということで、手作業の設定をご説明しましたが、3-7までの手順を vagrant upのときに実行するシェルスクリプトを書いたので、もしよろしければお使いください。Vagrantfileと同じディレクトリにをおけば、OKです。

gentamura/setup.sh

その際のVagrantfileは以下のとおりです。


Vagrant

# -*- mode: ruby -*-

# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64" # Ubuntu 14.04 を使用
config.vm.network "forwarded_port", guest: 3000, host: 3000 # Railsで利用するポートを設定
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" # メモリを多めに設定
end
config.vm.provision "shell", path: "setup.sh", privileged: false # <= ここを追加
end

この環境構築で Rails 5 + ActionCableで作る!シンプルなチャットアプリ(DHH氏のデモ動画より) が試せると思います。(実はこれをしたくて、環境構築を改めてまとめてました)

以上です、お役に立てば幸いです!

via https://gorails.com/setup/ubuntu/14.04