rbenv: [nome-binário]: comando não encontrado

Isso aconteceu comigo com o Vagrant, mas o problema não é específico para aquela joia.

Eu estava usando uma versão mais antiga do Vagrant que foi instalada por meio de uma gema que fornecia um binário. Eu estava usando o rbenv. O mantenedor do Vagrant depreciou a gem e forneceu um instalador. Desinstalei todas as minhas joias do Vagrant e executei o instalador. Então aconteceu isso:

jd at James in ~
><((°> vagrant --version
rbenv
: vagrant: command not found

jd at
James in ~
[127] ><((ˣ> echo $PATH
/usr/local/share/npm/bin /usr/local/share/python /usr/local/bin /Users/jd/.rbenv/shims /Users/jd/bin /usr/bin /bin /usr/sbin /sbin

jd at
James in ~
><((°> /usr/bin/vagrant --version
Vagrant version 1.1.5

O que está acontecendo?!

Acontece que rbenv instala shims para todos os binários, que alternam automaticamente para a versão ruby ​​apropriada antes de invocar o binário real. Para consertar toda essa bagunça, execute o seguinte:

rbenv rehash

Definitivamente surpreendente. O pós-moderno (que resolveu esse problema para mim) sugeriu chruby como uma solução potencial sobre a qual você nunca mais vai querer pensar nisso.