/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