I was trying to use n in a provisioning script for a Vagrant box to install node.js. There is a really handy install script called n-install and I had decided to go with that to install any version of node.js/io.js in one line like this:
BASH
# install io.jscurl -L http://git.io/n-install | bash -s -- -y io:latestsource $HOME/.bashrc
I had to source the .bashrc to set some environment variables for n and add it to the PATH. This never worked and I couldn't figure out why until I opened an issue on GitHub and found a StackOverflow post mentioning a potential issue.
The problem is that the default .bashrc contains this line at the very top:
BASH
# If not running interactively, don't do anything[ -z "$PS1" ] && return
So the relevant lines that setup n never get executed. I have found this to be the case for ubuntu/precise64 and ubuntu/trusty64 boxes.
I haven't found a way to source the .bashrc without breaking anything, so I am going to be using a different install method for n in the meantime. If I make a discovery, I will update this post.