t4traw.net

Ubuntu 14.04にRuby(2.1.5)開発環境をセットアップ

Ubuntu 14.04にRuby(2.1.5)開発環境をセットアップ

ふとしたトラブルで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://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して使ったりできます。