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が生成されるので、編集します
# -*- 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を編集します
# 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は以下のとおりです。
# -*- 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氏のデモ動画より) が試せると思います。(実はこれをしたくて、環境構築を改めてまとめてました)
以上です、お役に立てば幸いです!