So I'm trying to install nvm and node in vagrant but can't seem to make it work.
Apparently I'm having trouble getting it to load/read nvm since nvm requires you to reload your terminal. ~/.profile
doesn't seem to be doing the job
using ubuntu/xenial64
This is my bootstrap.sh file
#install nvm
cd ~
curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh -o install_nvm.sh
bash install_nvm.sh
#this command makes it so that you don't need to re-open the terminal for 'nvm' to be available
source ~/.profile
#use nvm to install node
nvm install 6.2.2
nvm use 6.2.2
the error I get (slightly modified to hide personal information):
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /installation_data => C:/work/<PATH_OMMITED>
==> default: Running provisioner: shell...
default: Running: C:/Users/ahmed/AppData/Local/Temp/vagrant-shell20160703-8248-1c82peg.sh
==> default: => Downloading nvm from git to '/home/ubuntu/.nvm'
=> default:
==> default: Cloning into '/home/ubuntu/.nvm'...
==> default: * (HEAD detached at v0.31.2)
==> default: master
==> default: => Appending source string to /home/ubuntu/.bashrc
==> default: => Close and reopen your terminal to start using nvm
==> default: /tmp/vagrant-shell: line 11: nvm: command not found
==> default: /tmp/vagrant-shell: line 12: nvm: command not found
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
Instead of sourcing ~/.profile
try this:
echo "--- Installing Node.js ---"
git clone https://github.com/creationix/nvm.git /home/vagrant/.nvm && cd /home/vagrant/.nvm && git checkout `git describe --abbrev=0 --tags`
source /home/vagrant/.nvm/nvm.sh
nvm install 6.2.2
nvm use 6.2.2
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
echo $n
Please refer this post. Tested on scotch box. Seems to just work fine.