1. GenTamura84

    Posted

    GenTamura84
Changes in title
+Vagrant + VirtualBoxでつくるRails 5の環境構築
Changes in tags
+VirtualBox
5.0.12
+Ruby
2.2.3
+Rails
5.0.0.beta1
+Redis
3.0.6
Changes in body
Source | HTML | Preview
@@ -0,0 +1,211 @@
+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 は[こちら](https://www.vagrantup.com/downloads.html) からインストール
+VirtualBox は[こちら](https://www.virtualbox.org/wiki/Downloads) からインストール
+
+# 2. Vagrantのセットアップ
+
+```bash
+$ cd your_project_directory
+$ vagrant init
+```
+
+Vagrantfileが生成されるので、編集します
+
+```ruby: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を起動します
+
+```bash
+$ vagrant up # ubuntu/trusty64のboxがダウンロードされていない場合は、しばらく時間がかかります
+```
+
+起動が済んだら、ログインします
+
+```bash
+$ vagrant ssh
+```
+
+# 3. Ubuntuのパッケージをセットアップ
+パッケージをアップデートして、必要なパッケージをインストールします
+
+```bash
+$ 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をセットアップします
+
+```bash
+$ 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をインストール
+
+```bash
+$ rbenv install 2.2.3 # ※結構時間がかかります
+$ rbenv global 2.2.3
+$ rbenv rehash
+$ gem install bundler
+```
+
+# 5. Node.jsのセットアップ
+Railsで必要なので、Node.jsも入れます
+
+```bash
+$ 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.で入れたので、セットアップ不要です)
+
+```bash
+$ 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をインストールします
+
+```bash
+$ 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を追加していくのは好きではないので、
+以下のようにプロジェクトをつくっていきます。
+
+```bash
+$ cd /vagrant
+$ mdkir blog
+$ cd blog
+$ bundle init
+```
+
+生成されたGemfileを編集します
+
+```ruby:Gemfile
+# A sample Gemfile
+source "https://rubygems.org"
+
+gem "rails", "5.0.0.beta1"
+```
+
+Railsをプロジェクトのgemとしてインストールします
+
+##### A. ホストがMacの場合
+
+```bash
+$ bundle install --path vendor/bundle
+```
+
+##### B. ホストがWindowsの場合
+###### ※共有フォルダの/vagrant配下にnative extensionsを利用するgemをインストールすると、エラーなるための処置です。/vagrant配下以外なら問題ないはず。
+
+```bash
+$ sudo mkdir /usr/local/src/bundles
+$ sudo chown -R vagrant:vagrant /usr/local/src/bundles
+$ bundle install --path /usr/local/src/bundles/blog
+```
+
+# 9. アプリケーションを作成する
+
+```bash
+$ 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](https://gist.github.com/gentamura/b95601b1f57dbd2b9d1f)
+その際のVagrantfileは以下のとおりです。
+
+```ruby: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氏のデモ動画より)](http://qiita.com/jnchito/items/aec75fab42804287d71b) が試せると思います。(実はこれをしたくて、環境構築を改めてまとめてました)
+
+以上です、お役に立てば幸いです!
+
+via [https://gorails.com/setup/ubuntu/14.04](https://gorails.com/setup/ubuntu/14.04)