2014-10-11 37 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來做大部分事情。