Rubyのインストール方法

公式ページを含め、結構な量のWebサイトがrbenvを使うことを推奨している。 Rubyのバージョン管理なので当然といえば当然なのだが、プロジェクト毎に違うバージョンのRubyが利用できるようになるようだ。

rbenvをインストールする方法

MacにHomeBrew,rbenv,bundlerをインストールする のように、HomeBrewで自家醸造するのが一般的らしい。 しかし、HomeBrewは

Homebrew は /usr/local にインストールすることを推奨しています。

しかし、/usr/local はそもそもホスト管理者に与えられた場所で、 自前でビルドしたものやローカルで用意したツールなどを置く場所です。パッケージマネージャに入ってきてほしい場所ではありません。

/usr/local を本来の意味で使いたいため、Homebrew は /opt にインストールすることにしました。

というように/usr/localを利用するのでよろしくない。 そしてmacOSを使っているのに/opt/homebrewにインストールするというのもなんだか・・・という感じ。

rbenv公式リポジトリを見てみると、

$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv

と、ホームディレクトリに.rbenv隠しディレクトリを作りインストールする方法が載っていた。 /usr/local/optなどにインストールするのも気持ち悪いが、ホームディレクトリ内に隠しファイルでインストールされるのも気持ち悪い。

と悩んでいたところ、macOSらしく/Applicationsにインストールする方法を思いつく。

rbenvをアプリケーションフォルダにインストールする

大変参考になったサイト
rbenv + ruby-build はどうやって動いているのか

ここに書かれているRBENV_ROOTの設定をしないと、 存在しない~/.rbenvにパスが通っているため、ruby-buildが動作せず、Rubyのインストールもされない。

インストール手順は

  1. アプリケーションフォルダにRubyディレクトリ作成
  2. Ruby/rbenvgit cloneする
  3. rbenvインストール後、ruby-buildプラグインをインストールする
  4. 環境変数などを~/.bash_profleに設定する

となる。

これらをまとめたシェルスクリプトを記述した。

#!/bin/sh

rubydir="/Applications/Ruby"

# create install directory
if [ ! -d $rubydir ]; then
  mkdir $rubydir
fi

rbenvdir="$rubydir/rbenv"

# not exist rbenv or non file in rbenv
if [ \( ! -d $rbenvdir \) -o \( -z "`ls -A $rbenvdir`" \) ]; then

  # clone rbenv
  git clone https://github.com/rbenv/rbenv.git $rbenvdir

  # make rbenv
  cd $rbenvdir
  ls -a
  ./src/configure
  make -C src

  #Add PATH
  echo "\n" >> ~/.bash_profile
  echo "#rbenv command" >> ~/.bash_profile
  echo "export PATH=\"\$PATH:/Applications/Ruby/rbenv/bin\"" >> ~/.bash_profile
  echo "export RBENV_ROOT=$rbenvdir" >> ~/.bash_profile
  echo "eval \"\$(rbenv init -)\"" >> ~/.bash_profile

  #ruby-build install
  git clone https://github.com/rbenv/ruby-build.git $rbenvdir/plugins/ruby-build

  # init
  bin/rbenv init

  echo "need restart terminal!"
fi

このシェルスクリプトを実行すればrbenv/Applications/Rubyにインストールされ、 rbenvコマンドが実行可能になる。