2014-10-11 35 views
2

我想通过Vagrant和外壳配置程序安装node.js和一些包。安装NodeJS与Vagrant外壳配置不工作

我发现三种情况:

1-简单vagrant up并引入命令里面vagrant ssh

  • 这一个完美的作品一旦手动,这就是为什么我不明白为什么在未来2的情况下才会不

2-从具有权限的VagrantFile中调用bootstrap.sh进行安装:false

  • 在安装vagrant up一切(甚至说:“Now using node v0.11.14

  • 一旦进入vagrant ssh节点,NVM和故宫都在我的流浪者的用户文件夹,但node命令不被识别,以及npmnvm是公认的,但nvm ls没有列出任何内容。

3-从bootstrap.sh称为VagrantFile与权限进行安装:真

  • vagrant up一切安装(它甚至说: “Now using node v0.11.14

  • 节点,NVM和NPM安装在/根目录下node_modules位于vagrant用户目录下

  • 命令节点和NPM没有找到

这里VagrantFile的内容和的bootstrap.sh

VagrantFile:

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 
VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "ubuntu/trusty64" 

    config.vm.network "forwarded_port", guest: 80, host: 8080 
    config.vm.network "forwarded_port", guest: 3306, host: 8081 

    config.vm.provision "shell", path: "bootstrap.sh", privileged: false 

    config.vm.synced_folder "Server", "/home/vagrant/Server" 

end 

bootstrap.sh

#!/usr/bin/env bash 

sudo apt-get update 
sudo apt-get -y install build-essential libssl-dev 

curl https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash 

source ~/.nvm/nvm.sh 

nvm install 0.11.14 

npm install express 
npm install -g nodemon 

谢谢!

+0

我不熟悉nvm,所以我有一个问题:如果你手动安装nvm和所有东西,然后退出(退出)和ssh再次。它工作吗?我假设你必须添加〜/ .nvm到你的路径。 – Sgoettschkes 2014-10-18 18:51:43

回答

1

您需要添加nvm use 0.11.14或将nvm alias default 0.11.14添加到供应脚本中,以便nvm知道在运行npm或节点命令时要使用哪个版本。

0

你只需要找到它在哪里,你总是有$ PATH:

[email protected]# echo $PATH 

会给你像

/home/vagrant/.nvm/v0.10.18/bin:/usr/local/bin:/usr/bin:/bin 

所以尽量

[email protected]# sudo su 
[email protected]# /home/vagrant/.nvm/v0.10.18/bin/npm install -g qunit --save 

(^^例如当我安装qunit时,流浪者有别名但没有许可)

你可能需要sudo - 对npm来说不是一个坏主意。我的配置(Vagrant + ansible)使用root来做大部分事情。