公式ページを含め、結構な量の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_ROOT
の設定をしないと、
存在しない~/.rbenv
にパスが通っているため、ruby-build
が動作せず、Rubyのインストールもされない。
インストール手順は
Ruby
ディレクトリ作成Ruby/rbenv
にgit clone
するrbenv
インストール後、ruby-build
プラグインをインストールする~/.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コマンドが実行可能になる。