2016-05-17 13 views
0

Ich versuche, Dev-Umgebung auf Vagrantbox Setup.
Meine Host-Umgebung ist:So beheben Sie Fehler mit globalen Grunt-Installation über Npm auf Vagrant Box

  • windows 7
  • Vagrant Version 1.8.1
  • Vbox Version 5.0.20r106931

Hier ist meine Vagrant-Datei:

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

Vagrant.configure(2) do |config| 

    config.vm.box = "hashicorp/precise64" 
    config.vm.hostname = "frontend" 

    config.vm.provision "shell", path: "provision.sh" 

    config.vm.provider "virtualbox" do |vb| 
    # Display the VirtualBox GUI when booting the machine 
    vb.gui = true 

    # Customize the amount of memory on the VM: 
    vb.memory = "4096" 
    vb.cpus = "2" 
    end 

end 

und hier ist meine vagrant Bereitstellungsdatei:

apt-get -y update 
apt-get -y install curl 
apt-get -y install git 
apt-get -y install nodejs 
apt-get -y install npm 
apt-get -y install python-pip 

Nach dem Booten bis Vagabund und ssh-ing hinein Befehl folgende fehlschlägt:

sudo npm install -g grunt 

und hier ist Fehlerprotokoll von NPM-Datei debug.log:

info it worked if it ends with ok 
verbose cli [ 'node', '/usr/bin/npm', 'install', '-g', 'grunt' ] 
info using [email protected] 
info using [email protected] 
verbose config file /home/vagrant/.npmrc 
verbose config file /usr/etc/npmrc 
verbose config file /usr/share/npm/npmrc 
silly exec /usr/bin/node "/usr/share/npm/bin/npm-get-uid-gid.js" "nobody" 1000 
silly spawning [ '/usr/bin/node', 
silly spawning [ '/usr/share/npm/bin/npm-get-uid-gid.js', 'nobody', 1000 ], 
silly spawning null ] 
silly output from getuid/gid {"uid":65534,"gid":1000} 
silly output from getuid/gid 
verbose cache add [ 'grunt', null ] 
silly cache add: name, spec, args [ undefined, 'grunt', [ 'grunt', null ] ] 
verbose parsed url { pathname: 'grunt', path: 'grunt', href: 'grunt' } 
verbose addNamed [ 'grunt', '' ] 
verbose addNamed [ null, '' ] 
silly name, range, hasData [ 'grunt', '', false ] 
verbose raw, before any munging grunt 
verbose url resolving [ 'https://registry.npmjs.org/', './grunt' ] 
verbose url resolved https://registry.npmjs.org/grunt 
http GET https://registry.npmjs.org/grunt 
ERR! Error: failed to fetch from registry: grunt 
ERR!  at /usr/share/npm/lib/utils/npm-registry-client/get.js:139:12 
ERR!  at cb (/usr/share/npm/lib/utils/npm-registry-client/request.js:31:9) 
ERR!  at Request._callback (/usr/share/npm/lib/utils/npm-registry-client/request.js:136:18) 
ERR!  at Request.callback (/usr/lib/nodejs/request/main.js:119:22) 
ERR!  at Request.<anonymous> (/usr/lib/nodejs/request/main.js:212:58) 
ERR!  at Request.emit (events.js:88:20) 
ERR!  at ClientRequest.<anonymous> (/usr/lib/nodejs/request/main.js:412:12) 
ERR!  at ClientRequest.emit (events.js:67:17) 
ERR!  at HTTPParser.onIncoming (http.js:1261:11) 
ERR!  at HTTPParser.onHeadersComplete (http.js:102:31) 
ERR! You may report this log at: 
ERR!  <http://bugs.debian.org/npm> 
ERR! or use 
ERR!  reportbug --attach /vagrant/code/npm-debug.log npm 
ERR! 
ERR! System Linux 3.2.0-23-generic 
ERR! command "node" "/usr/bin/npm" "install" "-g" "grunt" 
ERR! cwd /vagrant/code 
ERR! node -v v0.6.12 
ERR! npm -v 1.1.4 
ERR! message failed to fetch from registry: grunt 
verbose exit [ 1, true ] 

Antwort

1

obwohl präzise ist noch nicht Ende des Lebens, sollten Sie eine neuere Ubuntu Release - up-Datum Ihrer Box mit Wily oder Xenial verwenden und das Repo wird auf dem neuesten Stand sein

Sie haben

info using [email protected] 
info using [email protected] 

aber Grunt erfordern Node> 0,8

so:

  1. Update Ihre Box und verwenden Sie einen aktuellen Release
  2. die Versionen von Knoten/nom im aktuellen Feld aktualisieren
+0

Dies hat das Problem nicht gelöst. Das hilft mir, das neueste ubuntu zu verwenden, aber der Fehler besteht immer noch. Die echte Lösung ist auf diesem Link: https://github.com/npm/npm/issues/7308 – gandra404

+0

Ich werde erneut überprüfen, ob schließlich Berechtigungen ein Problem mit dieser Lösung später war. Wenn ich arbeite, werde ich diese Antwort laccpet, wenn nicht, werde ich eine andere Antwort geben (schon funktioniert). Wie auch immer, ich werde ältere Version von Vagrant verwenden, weil xenial einige Probleme für meine dev env .. auferlegen. Http://stackoverflow.com/questions/37283269/how-i-can-get-vagrant-folder-on-ubuntu -xenial64 – gandra404

+1

möglicherweise Problem mit Symlink etc ... aber stil grunt [erfordert stabile Node.js Version> = 0.8.0] (http://gruntjs.com/getting-started) _ Odd Versionsnummern von Node.js sind als instabile Entwicklungsversionen angesehen werden. Dies könnte zu einer fehlerhaften Installation führen –