6

I just installed ubuntu, and after that I wanted to install RVM with ruby and rails 3.1.

Installations went fine but when I want to create a rails app it can't find the rails command.

I know I can create an alias, but when rvm changes its gemset, the alias-path would be wrong right?

This is my .bashrc file (/home/user/.bashrc):

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac


[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"


# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    color_prompt=yes
    else
    color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

So, I don't really know how to get this to work...

Help is appreciated!

Thanks

3
  • did you restart you commande line ? Commented Aug 29, 2011 at 14:19
  • I did just now, and now my rvm doesn't work anymore.. I created an alias for rvm, but it seems it lost it.. Do aliases go away after a restart of the command line? Commented Aug 29, 2011 at 14:25
  • @tim no they don't but I am guessing your alias is in the wrong place. Can we see your .bashrc Commented Aug 29, 2011 at 14:51

2 Answers 2

18

You need to

Add rvm to your .bashrc by adding a line like

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

This will allow you to load rvm when you start a new bash session

create a new Gemset when you want a new rails.

The work flow should work like this

$ mkdir new_rails_app
$ cd new_rails_app
$ vim .rvmrc

# edit the .rvmrc to use the correct Gemset Something like 
rvm use ruby-1.9.2-p180@new_rails_app --create

#save and exit vim

$ rvm rvmrc load
# you should see a prompt that your Gemset was loaded

$ gem install rails
$ rails new .

You now have a working rails directory for a new app using rvm. There are other little tricks like auto loading your rvmrc's but I left that out just for the sake of the "easiest" route.

Sign up to request clarification or add additional context in comments.

5 Comments

Still rvm command not found... changed the path to the rvm installation path after I tried the line you recommended, but it doesn't seem to work...
where are you putting in in your .bashrc can you put that file in your question
I've posted the file.. it's located in /home/user/.bashrc
throw your rvm line at the end of the file and then save and close out of terminal and re open it
still nothing.. i tried /var/lib/gems/1.8/gems/rvm-1.7.0, /usr/local/rvm, and the normal $HOME/.rvm/scripts/rvm. But the last folder doesn't even exist on my hdd.. but when i view my gem list, rvm 1.7.0 is there
4

I meet the issue "command not found: rails" too, but I'm using oh-my-zsh for the shell prompt, and I fix the issue by copy the line

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

from file ~/.bashrc to ~/.zshrc, and it works well. Hope it can give you some help.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.