2016-07-24 7 views
2

Wenn ich versuche, NVM zu installieren und testen, dass es in meinem vagrant Shell Provisioning-Skript installiert ist, mit:Warum ist NVM-Befehl als root installiert und auch nicht während vagrant bootstrap.sh gefunden?

sudo wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash 
source ~/.bashrc 
nvm 

ich:

==> default: => Downloading nvm as script to '/root/.nvm' 
==> default: => Appending source string to /root/.bashrc 
==> default: => You can now install Node.js by running `nvm install` 
==> default: /tmp/vagrant-shell: line 7: nvm: command not found 

Zuerst habe ich es als root nicht installieren will Ich möchte es als den vagabundierenden Benutzer in/home/vagrant installieren, um Berechtigungsprobleme zu vermeiden.

Zweitens warum ist der Befehl nicht gefunden, wenn ich source .bashrc wie in den nvm Installationsanweisungen hier https://github.com/creationix/nvm angegeben ausgeführt habe?

Ich habe eine Lösung, die ich jetzt hinzufügen.

Antwort

3

Also zuerst, wenn Sie somethnig als Vagabund Benutzer während eines bootstrap.sh Skript installiert werden soll, ist der einfachste Weg, dies zu tun, ist eine andere provisioner Skript zu Ihrem Vagrantfile hinzuzufügen, die in nicht privilegierten Modus ausgeführt wird:

config.vm.provision "ScriptRunAsRoot", type:"shell", path: "Vagrantdata/rootUserBootstrap.sh" 
config.vm.provision "ScriptRunAsVagrantUser", privileged: false, type:"shell", path: "Vagrantdata/vagrantUserBootstrap.sh" 

Um in dieser Situation den nvm-Befehl zu erhalten, müssen Sie das nvm.sh-Skript direkt ausführen, dh nicht über die .bashrc-Datei, wie in den nvm-Installationsanweisungen angegeben. Dies liegt daran, dass .bashrc eine Zeile hat, die früh beendet wird, wenn sie in einer nicht interaktiven Shell ausgeführt wird, was ich als Vagrant bezeichnen kann. Von Bashrc:

# If not running interactively, don't do anything 
case $- in 
    *i*) ;; 
     *) return;; 
esac 

So anstelle des source ~/.bashrc, müssen Sie:

source ~/.nvm/nvm.sh 
Verwandte Themen