Windows7 に Ubuntu / Vim / Ruby + Rails をいれたい

Windows7RubyRailsできる環境をつくっておこうと思って。メモ。
今のところ問題なく動いていますが、おかしいところがあったらご指摘いただけるとうれしいです。

Git Bashのインストール

XPのときもそうだったんですが、Windowsコマンドプロンプトから実行すると
SSHのところではまるのです。
それがなんでなのかはまだわからず。

(たしか)こちらのエントリを参考にしてGit for Windows をインストールしました。
Windows に msysgit をインストールして git 環境を作る - xykの日記

VirtualBoxのダウンロードとインストール

VirtualBoxのダウンロードページ
ひたすらNextして大丈夫だった

Vagrantのダウンロードとインストール

Vagrantのダウンロードページ
おなじくひたすらNextして大丈夫だった

Ubuntuをインストール

GitBashをひらいて

$ vagrant init precise32 http://files.vagrantup.com/precise32.box
$ vagrant up

VirtualBoxを起動して、vagrantを立ち上げてくれます。
立ち上がったら

vagrant ssh

下記のように表示されたら成功してます!

vagrant@precise32:~$

もうUNIXコマンド使えます〜!!

vimをいれます

下記エントリを参考に。
http://naka7772.blog.fc2.com/blog-entry-242.html

$ sudo apt-get install vim

ちょこっとだけ設定をします。

~/.vimrc というファイルに設定を書き込みます。
ファイルがなければ作ればOK

vimがつくるバックアップファイルが忌々しい的なうわさを聞いたことがあるので、
とりあえずバックアップファイルは作らないでってお願いしました。
あとRubyのインデントは2なのでそれも。

私の~/.vimrc

1 set nocompatible
2 set number
3 syntax on
4
5 set tabstop=2
6
7 set showmatch
8
9 set smartindent
10
11 set nobackup

ほかにもいろいろ設定したいところですが、今日はひとまず。

rbenv + Ruby インストール

下記エントリを参考にしました。
Sign in · GitLab

エントリにはありませんでしたが、git installもしておく必要があります。
あと`source ~/.bash_profile` じゃなくて `source ~/.bashrc` の間違いだと思われませす。。

いきましょう。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential libreadline-dev libssl-dev zlib1g-dev

git をインストールしてrbnevをインストールします。

$ sudo git install
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

~/.bashrc に追記します。私は最後の行に書きました。

# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

これを反映させるために、

$ source ~/.bashrc

を実行します。

次にruby-buildをインストール

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

いよいよRubyのインストールです!!
インストールできるRubyのバージョンを確認します。

$ rbenv install list

ばーっと表示されたなかから、バージョンを選びましょう。
私は(なんとなく)MBAにいれてるのと同じ、 2.0.0-p353 にしました。

$ rbenv install 2.0.0-p353

ここでいくつかのバージョンをインストールすると

$ rbenv versions

でインストールされているRubyのバージョンが一覧できます。

$ rbenv global 2.0.0-p353   # タブ補完できるよ

globalとするとどこのディレクトリにいても、このバージョンを使うことになります。
たとでば特定のディレクトリで特定のバージョンを固定したかったら、そのディレクトリで

$ rbenv local [バージョン]

とするといいみたいです。

あと、バージョン変えたりしたあとは

$ rbenv rehash

を実行するといいみたい。

`ruby -v` すると 2.0.0-p353 とかえってきました。

Railsのインストール

あともうちょっと!!

$ gem update
$ gem install bundler
$ gem install rails
$ rbenv rehash

最新のRailsがインストールされました!
バージョンを指定したいときは

$ gem install rails --version="~> 3.2"

とかする。

Rails動くか試してみたらこけた

`rails new test_app` して `rails s` してみたら、sqlite3 がないって言われました。
エラーメッセージ通り `bundle install` すると、
今度は

An error occurred while installing sqlite3 (1.3.8), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.8'` succeeds before bundling.

とでますが、`gem install sqlite3 -v '1.3.8'` を実行しても解決しませんでした。

ubuntu - An error occurred while installing sqlite3 (1.3.7), and Bundler cannot continue Cannot create rails app - Stack Overflow
これを参考にして

$ sudo apt-get install libsqlite3-dev
$ bundle install

できました!

今度は

`Could not find a JavaScript runtime` というエラーメッセージ
UbuntuでRailsを実行すると「Could not find a JavaScript runtime.」エラーが発生する - Qiita
こちらで解決できました!

$ sudo apt-get install nodejs

それでGemfileに追記します。

gem 'libv8'
gem 'execjs'
gem 'therubyracer', :platforms => :ruby

$ bundle install
$ rails s

動いたー!!

Railsサーバをブラウザで確認するために

無事 `rails s` して動くようになりましたが、このままではブラウザ上で確認できません。

下記エントリを参考にして設定しました。
[Vagrant][VirtualBox]仮想マシンでHTTPサーバを起動してブラウザからアクセスする方法 · DQNEO起業日記

まず、いったんlogoutして`vagrant halt` してシャットダウンします。
ローカルにあるVagrantfileを書き換えます。
`config.vm.network` から始まるところが#でコメントアウトされていると思うので、#を削除して保存します。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# ...
config.vm.network :private_network, ip: "192.168.33.10"
# ...
end

`vagrant up` したとに 192.168.33.10 へpingを飛ばしてみてOKだったら成功です。

$ vagrant up
$ ping 192.168.33.10
$ vagrant ssh

アプリのディレクトリに移動して、`rails s` しましょう。
動いたら、ブラウザを立ち上げて `http://192.168.33.10:3000` へアクセス。

なじみのあるあの"Welcome aboard"が表示されたら大成功です!

やったね!!

日本語対応したい

長くなってきたので、ここでいったん終了します。次回へつづく。