The shell forgets that node and npm are installed every time I log in or switch to a different user.

September 3, 2013 3.2k views
Whenever I log in or switch back to my main user account, the shell throws "command not found" errors for node and npm. In order to make it work, I have to run `$ source ~/.profile; npm use 0.10.17`. After that, the node command works again. On IRC, someone suggested adding these commands to my .bashrc file, but when I did that, loading .bashrc hangs indefinitely. As a Mac user, I'm used to using .bash_profile like this, but this isn't working like I expected. What is the path to enlightenment on this?
7 Answers
What did you add to .bashrc?
Hi Kamal!

I just appended the two commands to the bottom of my .bashrc, as if it were a shell script:

source ~/.profile;
npm use 0.10.17;

Today, I learned more about nvm, and realized that the command nvm alias default 0.10.17 was exactly what I needed. For some reason, I didn't realize what nvm was when I followed the Node VPS installation instructions, and I mistook it for npm.
Oh. So does it work fine now?
Yes, It works immediately now whenever I log in fresh. The only time it doesn't work is when I switch user to my username with su john, but then I can just source my .profile and it remembers that node exists.
Ugh, there's no edit button, and my code element wasn't closed.
Try running su -l join instead. This spawns a login shell (and not just an interactive bash shell) which sources .profile and .bashrc.

Let me know if that works!
P.S.: I've fixed your post :]
Have another answer? Share your knowledge.