yucatio@システムエンジニア

趣味で作ったものいろいろ

rbenvとruby-buildインストール時に no such command `install' が出た原因と対処法

前回の続き。rubyのバージョンをあげる最中に

no such command `install'

というエラーが出てしまった原因と対処法。

症状

rbenv実行時に no such command `install' というエラーが出た

$ rbenv install -l
rbenv: no such command `install'

原因

gitからcloneするときに、保存先のパスを間違って指定してしまった。

正しい方法

  • rbenvは~/.rbenv
  • ruby-buildは~/.rbenv/plugins/ruby-build

にインストール(clone)する

yucatio.hatenablog.com

間違った方法と解決まで

rbenvとruby-buildのclone (誤った手順)

f:id:yucatio:20160512234646p:plain

f:id:yucatio:20160512234710p:plain

ログインスクリプトの記載 (誤った手順)
$ echo 'export PATH="$HOME/git/rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
動かぬ
$ rbenv install -l
rbenv: no such command `install'
一旦今のリポジトリを消して再度clone実行

f:id:yucatio:20160512225025p:plain

怒られた

f:id:yucatio:20160512235639p:plain

自動的に~/.rbenvにいろいろいろ配置されていたようだ

bash-3.2$ ls -la ~/.rbenv
total 96
drwxr-xr-x  4 xxxx  xxxxx    680 May  7 00:35 .
drwxr-xr-x+ 42 xxxx  xxxxx   1462 May 7 23:42 ..
drwxr-xr-x   2 xxxx  xxxxx    306 May  7 00:35 shims
drwxr-xr-x   2 xxxx  xxxxx    102 May  7 00:26 versions
~/.rbenv消去
$ rm -r ~/.rbenv
再度clone実行

f:id:yucatio:20160512225025p:plain

f:id:yucatio:20160512225044p:plain

ログインスクリプト書き直し
$ vi ~/.bash_profile
# 古い内容を削除して、
export PATH=$HOME/git/rbenv/bin:$PATH
# 正しい内容を記載
export PATH=$HOME/.rbenv/bin:$PATH

# 設定を読み込み
$ source ~/.bash_profile
できた
$ rbenv install -l
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302
  1.8.7-p334
# 後略

言い訳

gitからcloneしてきたものは ~/git 配下に置くようにしてたので今回もその通りにしていました。 PATHでrbenvの場所指定したのでどこにインストールしても大丈夫だと思ってました。 ちゃんとドキュメント読んでおけよという話ですね。

github.com