节点在 vagrant 上配置期间安装,但在连接到 ssh 时消失

Node is installed during provisioning on vagrant but disappears upon connecting to ssh

我真的厌倦了这个,我不知道哪里出了问题。我正在使用 Vagrant 1.7.2 , Ubuntu 13.04 , Virtual Box 4.3 12 r93733

我的主机是Windows8.1

这是我在 bootstrap.sh

上找到的节点 bootstrap 脚本
echo "--- Installing Node.js ---"
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 0.12
nvm use 0.12
sudo cp ~/.nvm/versions/nodejs/v0.12/bin/node /bin/node

echo "--- Install node app dependencies --"
cd /var/www/html/node
npm install express
npm install youtube-audio-stream

在配置过程中,我可以看到节点已正确安装。我可以看到 Now using node v0.12 。我还可以看到 npm install 是成功的

然而,当我使用 vagrant ssh 连接时。我得到 No command 'nvm' found 。而程序'node'可以在以下包中找到:。我还检查了 ~/.nvm/ 目录,它不存在。

更奇怪了。因此,当我在 ssh 时,我再次重新运行脚本。然后 nvm 现在已正确安装,我可以使用 node.js 了。

这是我想出来的

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 0.12
nvm use 0.12
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local