Edited at

Rails環境構築(Windows,VirtualBox,Vagrant,Ubuntu14.04,rbenv,cmder)

More than 5 years have passed since last update.

Windows上にRails環境を構築する機会があったのでメモとして書きます。Macでもほぼ同じ手順で構築できました。

cf) Windows 7マシンで、VirtualBox+Vagrantを使いUbuntu 14.04を動かす


狙い

VirtualBoxの共有フォルダ上にrailsプロジェクトを作成するので、Windows上の好きなエディタでコードが書けます。テスト用のrailsプロジェクトを作成してserverを起動し、Windowsのブラウザからアクセスするところまで書きました。

引用元)VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編)


VirtualBox導入

ver4.3.14でやろうとしたらエラーが出てvagrant up できませんでした。

vagrant 入れ直したり色々やりましたが、VirtualBoxが原因だったようです。

cf)Surface pro 3 でvirtualboxでエラーが発生するとき


ver4.3.12を導入

http://download.virtualbox.org/virtualbox/4.3.12/

の VirtualBox-4.3.12-93733-Win.exe を導入


vagrant導入

http://www.vagrantup.com/downloads.html

windows版を導入


atom導入(任意)

https://atom.io/

atomのwindows版。便利。sublime-textから乗り換えました。

packge-controlもすぐ使えます。

Atom ERB 便利です。

https://atom.io/packages/atom-erb


cmder導入(任意)

http://bliker.github.io/cmder/

Fullバージョンを導入

vagrantを利用するのにcmderは別にいりませんが、便利なので導入します。

cygwin,mingwなどより便利だと思います。最初からgitも使えます。

Ctrl + r で History search も利用可能。

文字表示がよく崩れるのが難点。

shift+左クリック選択でコピー。

alt+左クリックで選択で矩形選択コピー。

右クリック もしくはctrl+v でペースト。

日本語表示幅がおかしいので、

settings -> Font -> Monospace のチェックを外す。

cmderについては以下参照。

cf) 開発者がSurfacePro3を買ったらまずやること

以下、cmderを導入している前提で進める。


Ubuntu14.04導入


Ubuntu 14.04 のboxを追加し、vagrant upで起動

cmderを起動し、以下実行。box add には10〜20分ぐらいかかる。

$ vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

$ vagrant box list # ubuntu14.04 が追加されていることを確認。
$ mkdir -p vagrant-dir¥ubuntu14.04 #適当なディレクトリ作成。 cmderでは/ではなく¥
$ cd vagrant-dir¥ubuntu14.04
$ vagrant init ubuntu14.04 #Vagranfileが作成される
$ vagrant up #ubuntu14.04が立ち上がる
$ vagrant ssh #ubuntu14.04にsshで入る

※ Ubuntu公式 https://cloud-images.ubuntu.com/

https://cloud-images.ubuntu.com/vagrant/trusty/current/

ubuntuにsshで入った後

$ cd /vagrant # /vagrantがデフォルトの共有フォルダとなっている

$ touch foobar #Windows側でfoobarというファイルが作成されていることを確認し、共有フォルダが機能していることを確認


rbenvでrubyをシステムワイドに導入

cf) Ubuntu 14.04 で rbenv, ruby-build を使用して Ruby のバージョンを管理する

(以下ubuntuではないので別途読み替える必要あり)

rbenv+ruby-buildをインストールする手順 (CentOS/RedHat)

Rubyをrbenv+ruby-buildを利用してインストールする手順 (CentOS/RedHat)

$ sudo su - # rootになる

# apt-get -y update
# apt-get -y upgrade
# apt-get install -y build-essential git libssl-dev #必要なパッケージのインストール
# cd /opt
# git clone git://github.com/sstephenson/rbenv.git
# echo 'export RBENV_ROOT="/opt/rbenv"' >> /etc/profile
# echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile
# echo 'eval "$(rbenv init -)"' >> /etc/profile
# mkdir /opt/rbenv/plugins
# cd /opt/rbenv/plugins
# git clone git://github.com/sstephenson/ruby-build.git
# source /etc/profile #/etc/profileを再読込するとrbenvが使えるようになる
# rbenv install -l #導入可能なrubyの一覧を表示
# rbenv install 2.1.2 #10〜20分位かかる
# rbenv global 2.1.2
# which ruby
# ruby -v


Rails環境構築

/vagrant以下にテスト用rails プロジェクトを作成します。

/vagrant以下の共有フォルダにgemをインストールしようとするとエラーが発生しました。 今回はgemを "/usr/local/src/bundles/プロジェクト名" 以下にインストールします。

cf) [小ネタ][Ruby on Rails]bundle install時にText file busy エラー

また、システムのrubyにはbundler以外のgemはインストールしないで進めます。


rails new まで

$ apt-get install -y libsqlite3-dev

$ gem i bundler
$ mkdir -p /vagrant/rails/rails-test
$ cd /vagrant/rails/rails-test
$ bundle init #Gemfileを生成。bundlerがinstallされていないとか出たら、 rbenv rehash 実行
$ vim Gemfile #railsをコメントイン


Gemfile

# A sample Gemfile

source "http://rubygems.org"

gem "rails"


$ mkdir /usr/local/src/bundles  # gemをインストールするためのディレクトリを作成

$ bundle install --path /usr/local/src/bundles/rails-test
# これで ./bundle/config というファイルに以下のように書き込まれます。次回から単にbundle install と実行すれば、指定したディレクトリにgemが入ります。


.bundle/config

BUNDLE_PATH: "/usr/local/src/bundles/rails-test"


$ bundle exec rails new .   #Gemfileを上書きしてよいか聞かれるので yes。 sprocket周りのエラーでこける

$ bundle update

(※明示的にrbenvのrubyを使うことの宣言は rbenv exec … )

cf) gemをrailsのプロジェクトごとにインストールして管理することに関しては以下参照

システムのgemにrailsをインストールせずrails newする


therubyracer追加

$ vim Gemfile  #15行目のtherubyracerをコメントイン


Gemfile

gem 'therubyracer',  platforms: :ruby


$ bundle install

$ exit #sudoからログアウト
$ exit #ubuntuから一度ログアウト


ポートフォワーディング

guestの3000番を、hostの13000番にポートフォワーディング

$ vim Vagrantfile  #23行目を変更


Vagrantfile

config.vm.network "forwarded_port", guest: 3000, host: 13000


$ vagrant reload  #ubuntu再起動

$ vagrant ssh #再度ubuntuにログイン


rails server 起動

$ cd /vagrant/rails/rails-test/

$ bundle exec rails s

この状態でwindowsのブラウザから、localhost:13000 にアクセスすればいつものrailsの初期画面が表示されます。

参考)

Rvm-seppuku