ふとしたトラブルでrubyの開発環境が壊れてしまい、VagrantCloudからboxを落とそうとしたらエラーが出た。URLが変わったのかと思い、Vagrantをアップデートしたりしてもダメ。boxのバックアップはさすがにとってなかったorz

復習も兼ねて、またUbuntuの開発環境をVagrant+VirtualBoxで作ってみる。VagrantとVirtualBoxは既にインストールしてある前提で書きます。(Vagrant -v //1.6.5)

Ubuntu 14.04をVagrantCloudから落としてくる。

vagrant init ubuntu/trusty32

// Vagrantfileの必要な項目を編集してup
vagrant up
vagrant ssh

sshが繋げたら、とりあえずapt-getをアップデートする。で、rubyのインストールに必要なパッケージをあらかじめサクっとダウンロードしておく。

sudo apt-get update

sudo apt-get update && apt-get upgrade -y && apt-get -y install build-essential curl git-core libcurl4-openssl-dev libreadline-dev libssl-dev libxml2-dev libxslt1-dev libyaml-dev zlib1g-dev

最新のgitをインストール

次にgitを最新の物にインストール。この記事を書いている段階では2.1.3。

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
sudo apt-get upgrade
git --version //2.1.3

via:http://qiita.com/ka_/items/1c573d5fd14c81555fbe

rbenvをインストール

次にrbenvをインストール。なんかapt-getで入れると良くないとチラホラ見かけるので、gitで直接インストールする。

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
sudo reboot

rebootしたので、もう一度vagrant sshで接続する。そしたらtype rbenvと打ってみて、下記が出たら多分OK。

vagrant@vagrant-ubuntu-trusty-32:~$ type rbenv 
rbenv is a function                            
rbenv ()                                       
{                                              
    local command;                             
    command="$1";                              
    if [ "$#" -gt 0 ]; then                    
        shift;                                 
    fi;                                        
    case "$command" in                         
        rehash | shell)                        
            eval "`rbenv "sh-$command" "$@"`"  
        ;;                                     
        *)                                     
            command rbenv "$command" "$@"      
        ;;                                     
    esac                                       
}                                              

rbenvのプラグインをインストールする

次にrbenvの各種プラグインをインストールする。

  • Rubyのインストールに必要な__ruby-build__
  • rbenvはgem入れる度にrbenv rehashする必要があるけど面倒だから__rbenv-gem-rehash__
  • Vagrantの共有フォルダだとbundlerインストール時にエラーがでるのでgem管理ツールの__rbenv-gemset__
// ruby-buildインストール
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

// rben-gem-rehashインストール
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash

// rbenv-gemsetインストール
git clone git://github.com/jf/rbenv-gemset.git ~/.rbenv/plugins/rbenv-gemset

rubyをインストールする

次にインストール可能なrubyの一覧を表示->インストールする。

rbenv install -l

// インストール可能な物がリストアップされるので最新の物をインストールする
rbenv install 2.1.5

// globalに設定
rbenv global 2.1.5

// 確認
ruby -v //ruby 2.1.5p273 (2014-11-13 revision 48405) [i686-linux] 

// bundlerインストール
gem i bundler

これでRubyの開発環境はひとまず出来た。

作ったboxをエクスポートする

後々パッケージ化した時に困るネットワーク関連の設定を先にしておき、VirtualBoxをエクスポート(パッケージ化)する。

sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules

exit

// いったんvirtualboxを終了する
vagrant halt

// そしてboxをパッケージ化
vagrant package

するとpackage.boxというファイルができあがる。それを任意の名前にしてVagrantCloudに上げたりそのままbox addして使ったりできます。