-bash: ruby: command not found

25,189

Solution 1

rbenv needs these at the end of your ~/.bash_profile:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

Use grep rbenv ~/.bash_profile to see if they're there.

If not, run:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -l

and you should be up and running.

See steps 2 and 3 in the docs for more information.

Additional information on .bashrc, .bash_profile and .profile can be found in:

Solution 2

Run env | grep PATH and make sure that you have $HOME/.rbenv/bin in your PATH.

If it is not, add this to ~/.bash_profile.

export PATH="$HOME/.rbenv/bin:$PATH"
Share:
25,189
hyperrjas
Author by

hyperrjas

Code Lover Ror, Nodejs, React/Redux, Mongodb/Mysql/GraphQl

Updated on July 09, 2022

Comments

  • hyperrjas
    hyperrjas almost 2 years
    hyperrjas@serv1:~$ rbenv global
    1.9.3-p392
    hyperrjas@serv1:~$ rbenv local
    1.9.3-p392
    hyperrjas@serv1:~$ which ruby-build
    /usr/local/bin/ruby-build
    hyperrjas@serv1:~$ rbenv versions
    * 1.9.3-p392 (set by /home/hyperrjas/.ruby-version)
    hyperrjas@serv1:~$ rbenv version
    1.9.3-p392 (set by /home/hyperrjas/.ruby-version)
    hyperrjas@serv1:~$ rbenv rehash
    hyperrjas@serv1:~$ ruby -v
    -bash: ruby: command not found
    hyperrjas@serv1:~$ env | grep PATH
    PATH=/home/hyperrjas/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
    hyperrjas@serv1:~$ export PATH="$HOME/.rbenv/bin:$PATH"
    hyperrjas@serv1:~$ ruby -v
    -bash: ruby: command not found
    

    I'm working with ubuntu 12.04.

    This is my ~/.profile file:

    # ~/.profile: executed by the command interpreter for login shells.
    # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
    # exists.
    # see /usr/share/doc/bash/examples/startup-files for examples.
    # the files are located in the bash-doc package.
    
    # the default umask is set in /etc/profile; for setting the umask
    # for ssh logins, install and configure the libpam-umask package.
    #umask 022
    
    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include .bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
            . "$HOME/.bashrc"
        fi
    fi
    
    # set PATH so it includes user's private bin if it exists
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    export PATH="$HOME/.rbenv/bin:$PATH"
    eval "$(rbenv init -)"
    eval "$(rbenv init -)"
    eval "$(rbenv init -)"
    

    I have installed ruby last version with rbenv and when I try ruby -v I get -bash: ruby: command not found

  • hyperrjas
    hyperrjas about 11 years
    Thank you I have tried with this but I get the same result. This is my env | grep PATH PATH=/home/hyperrjas/.rbenv/bin:/usr/local/sbin:/usr/local/b‌​in:/usr/sbin:/usr/bi‌​n:/sbin:/bin:/usr/ga‌​mes NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/j‌​avascript Thank you
  • Joe Frambach
    Joe Frambach about 11 years
    Open a new terminal window. Your changes will applied at the next terminal window login.
  • Stefan
    Stefan about 11 years
    rbenv init enables shims and autocompletion.
  • hyperrjas
    hyperrjas about 11 years
    I don't understand why in rbenv doc specify if you are running ubuntu it is possible add Ubuntu note: Modify your ~/.profile instead of ~/.bash_profile.. If with ~/.profile is not working why is specified in doc?
  • PJP
    PJP about 11 years
    Good. I think you'll find rbenv is great for "normal" development. I used RVM for a long time and decided it was getting too big for my needs.