tSeiya's blog

行動結果のアウトプット場

/usr/local/rbenv/に置いたrbenvでrubyのinstallが上手くいかなかった時に確認した事

システム全体でrbenvを入れるときにやった事

やりたい事:
通常(?)だと,ユーザアカウント下で/.rbenvを入れるが,それを/usr/local/に入れる

まず,ログインした際に読み込まれる /etc/profile.d/*.sh (/etc/profileにより読み込まれる)にrbenv.shを作成して必要なパスを書く

$ vi rbenv.sh 
export RBENV_ROOT=/usr/local/rbenv
export PATH=${RBENV_ROOT}/bin:${PATH}
eval "$(rbenv init -)"

git cloneした内容を/usr/local/rbenvと,/usr/local/rbenv/plugins/ruby-build に置く

sudo git clone git://github.com/sstephenson/rbenv.git ${RBENV_ROOT}
sudo git clone git://github.com/sstephenson/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build

rbenv install *.*.* でrubyのインストールが上手くいかなかったとき

今回はruby-buildのusageが表示され,ruby-buildの使い方が間違っているような内容だったので,ruby-buildが呼び出されているところを探す.

きちんとインストールされているか確認

type rbenv #=>関数が返ってきたら上手くいっている

この関数内では,

command="$1";
command rbenv "$command" "$@"

となっていたので,
$command = "install"
$@ = "*.*.*"
が入っているはず

rbenvではrbenv-installを実行している

less bin/rbenv #=>  command -v "rbenv-install"を実行していた
less ../bin/rbenv-install 

rbenv/plugins/ruby-build/bin/rbenv-installでは,$RBENV_ROOTが設定していなければ,ホームディレクトリの.rbenvからruby-buildを探している

if [ -z "$RBENV_ROOT" ]; then
  RBENV_ROOT="${HOME}/.rbenv"
fi

$RBENV_ROOTが設定されているかを探す.

※結果的には以前.apt-get等でインストールに失敗したものが残っていたり,(apt-get --purge remove *** で対処),シェルを再起動しないと,rbenv.sh に書いた内容が呼ばれないのが原因だった.

exec ${SHELL} -l #シェルの再起動

参考:
http://office.tsukuba-bunko.org/ppoi/entry/systemwide-rbenv