Ubuntuでsudoとapt-getを使わずに、ローカルユーザディレクトリにrubyをインストールする方法を示します。

rbenvというrubyシステムインストーラを使い、その後にbundlerをインストールします。

rbenvのインストール

準備

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev

最後のapt-get installの実行前に

dpkg -l | grep "autoconf\|bison\|build-essential\|libssl-dev\|libyaml-dev\|libreadline6-dev\|zlib1g-dev\|libncurses5-dev\|libffi-dev\|libgdbm3\|libgdm-dev\|nodejs\|libsqlite3-dev"

のようにdpkg -l | grep "..."を実行して既にインストールされているubuntuパッケージの一覧を得て、まだされていないubuntuパッケージを調べて、sudo apt-get install -y にそれらのパッケージを与えて実行します。

実行できるようにする

.bashrcに下記シェルスクリプトを追加します。

[[ -d ~/.rbenv  ]] && \
    export PATH=${HOME}/.rbenv/bin:${PATH} && \
	eval "$(rbenv init -")

~/.rbenvディレクトリの存在確認を検査し存在した場合PATHシェル環境変数に~/.rbenv/binを追加、およびrbenv init -を実行します。

rubyのインストール

いよいよrbenvrubyをインストールします。

rbenv install 2.2.2
rbenv global 2.2.2
ruby -v

最初のrbenv installによりソースコードがダウンロードされビルド、そして、インストールされます。インストール先は~/.rbenv配下のディレクトリでインストール完了時に詳細が出力されますので確認してください。尚この操作はPCの性能に左右されます。Core-i7 3960Xで3分ほどかかりました。

次のrbenv globalでインストールしてあるバージョンを選びます。つまり、複数バージョンのrubyを切り替えて利用できるのです。今回は2.2.2を使いたいので2.2.2を与えました。

最後のruby -vで実行PATH上のrubyのバージョンを確認します。

bundlerのインストール

rubyのインストールが済んでしまえばgemコマンドを使うだけなので簡単です。

gem install bundler

これで使えるようになります。

Gemfilesがあるディレクトリに移動して

bundle install

を実行すればそのGemfilesに記述してあるRubyGembundlerがインストールしてくれます。インストール先はrbenvがインストールしてある~/.rbenv(この説明通りに操作した場合)配下のディレクトリになります。