1. GenTamura84

    No comment

    GenTamura84
Changes in tags
Changes in body
Source | HTML | Preview
@@ -1,211 +1,210 @@
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)