Help us understand the problem. What is going on with this article?

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

GenTamura84
JavaScriptが好きなエンジニアです メモ代わりにポツポツ投稿していこうとおもいます
https://twitter.com/gentamura84
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away