You need to add two things to your PATH.
First rbenv itself and second the ruby shims.
Part 1 rbenv
Installation
Homebrew
If you installed rbenv with brew,
then the rbenv executable should be linked to /usr/local/bin/rbenv.
See homebrew installation documentation for details.
Please add /usr/local/bin to your path PATH, if it is missing.
# in ~/.zshrc
export PATH=/usr/local/bin:$PATH
Github Checkout
If you install rbenv via a Github checkout, then the rbenv executalbe should be stored in ~/.rbenv/bin.
See github installation documentation for details.
Please add ~/.rbenv/bin to your path PATH, if it is missing.
# in ~/.zshrc
export PATH=$HOME/.rbenv/bin:$PATH
Verfiy
Please verify that rbenv is in your path by calling which rbenv.
The installation path should be returend.
Part 2 shims
Add the ruby shims to you path.
# in ~/.zshrc
eval "$(rbenv init -)"
Instead of the eval "$(rbenv init -)" command you can also add the shims folder directly.
# in ~/.zshrc
export RBENV_ROOT=$HOME/.rbenv
export PATH=$RBENV_ROOT/shims:/versions:$PATH
Part 3 rbenv doctor
You might also run the rbenv-doctor script mentioned here,
to check your installation.
You need to add two things to your PATH.
First rbenv itself and second the ruby shims.
Part 1 rbenv
Installation
Homebrew
If you installed rbenv with brew,
then the rbenv executable should be linked to /usr/local/bin/rbenv.
See homebrew installation documentation for details.
Please add /usr/local/bin to your path PATH, if it is missing.
# in ~/.zshrc
export PATH=/usr/local/bin:$PATH
Github Checkout
If you install rbenv via a Github checkout, then the rbenv executalbe should be stored in ~/.rbenv/bin.
See github installation documentation for details.
Please add ~/.rbenv/bin to your path PATH, if it is missing.
# in ~/.zshrc
export PATH=$HOME/.rbenv/bin:$PATH
Verfiy
Please verify that rbenv is in your path by calling which rbenv.
The installation path should be returend.
Part 2 shims
Add the ruby shims to you path.
# in ~/.zshrc
eval "$(rbenv init -)"
Instead of the eval "$(rbenv init -)" command you can also add the shims folder directly.
# in ~/.zshrc
export RBENV_ROOT=$HOME/.rbenv
export PATH=$RBENV_ROOT/shims:/versions:$PATH
Part 3 rbenv doctor
You might also run the rbenv-doctor script mentioned here,
to check your installation.
I had this same error. I could run which rbenv and rbenv just fine, but no matter what I would get command not found: rbenv. The issue was that I had eval "$(rbenv init -)" in my ~/.zshenv and not my ~/.zshrc file. You may still have the path to rbenv be added to $PATH within ~/.zshenv for it to work.
There is this note in rbenv's README (see Installation) about the shell command:
Note that you'll need rbenv's shell integration enabled (step 3 of the installation instructions) in order to use this command.
Step 3 is:
Add rbenv init to your shell to enable shims and autocompletion.
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profileSame as in previous step, use ~/.profile on Ubuntu, ~/.zshrc for Zsh.
Did you follow that instruction?
one gotya that I haven't seen posted on the internet is that in .bash_profile, you have ensure that
export PATH="$HOME/.rbenv/bin:$PATH"
is placed before
eval "$(rbenv init -)"
Otherwise the shell will try to run rbenv init before it can be found.
Reversing these two lines will cause both problems described by the OP;
ruby -v not showing the version that was set by rbenv
rbvenv shell returning "rbenv: no such command `shell’".
Don't ask how I know!
I today opened an issue in Github to propose an update to sstephenson's already awesome documentation.
The complaint you get comes from rbenv. The fact that it's complaining shows that rbenv is set up and working.
Figure out what version of Ruby is needed to run the project. Either the project comes with a .ruby-version file in the root, or someone on the project will know and recommend that version to use.
If the version is not specified in a .ruby-version file, create the .ruby-version file in the project directory.
type
ruby -vwhile in that directory. Is it OK? Then you have the version of Ruby installed that matches what your .ruby-version is asking for.If the last command was not OK, then type
rbenv install.
Now that Ruby is installed, you need to run your program. I'm assuming it comes with a Rakefile.
install the bundler tool:
gem install bundler.install the dependancies of the project:
bundle installrun your project using the exact versions of libraries it specifies:
bundle exec rails server
Try the following piece of code depending on the current version of rails that you have installed. In my case am using v2.3.3
rbenv global 2.3.3
The install command is not embedded into rbenv, it comes from the ruby-build plugin. You can install it using the command:
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
On Mac OS X you can install it through homebrew:
brew install ruby-build
On Debian (version >= 7) and Ubuntu (version >= 12.10) both rbenv and ruby-build can be installed using apt-get (or aptitude):
sudo apt-get update
sudo apt-get install rbenv ruby-build
On FreeBSD ruby-build is available in the Ports Collection, it can be install both as a binary package or build from the port:
# Using pkgng rbenv will be installed
pkg install ruby-build
# Building ruby-build form Ports will install rbenv only if the RBENV option is set
cd /usr/ports/devel/ruby-build
make install
I found that when using rbenv from a global directory, it's necessary to export the RBENV_ROOT variable, otherwise it won't load the plugins.
export RBENV_ROOT="/usr/local/rbenv"
if [ -d "${RBENV_ROOT}" ]; then
export PATH="${RBENV_ROOT}/bin:${PATH}"
fi
Your profile is ~/.profile. You can add eval "$(rbenv init -)" to it by typing nano ~/.profile in terminal.
I always install rbenv via homebrew. With the latest homebrew update I saw this rbenv error appear.
Installing the latest homebrew added the following line to my .bash_profile:
eval "$(/opt/homebrew/bin/brew shellenv)"
However, that line was inserted after the eval "$(rbenv init -)" call, so rbenv init actually tried to use the rbenv from the old homebrew location (which doesn't exist anymore).
The solution for me:
Move the homebrew line before the rbenv line in your .bash_profile (or .bashrc or whatever your shell has). That way the correct location will be used to find rbenv (and other tools you installed via homebrew).