2011-05-20 4 views
17

Je suis en train d'utiliser NPM sur Cygwin, je suis sans cesse les erreurs suivantes:NPM sur Cygwin: fin de fichier inattendue

ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Unexpected EOF in archive 
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Unexpected EOF in archive 
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" tar: Error is not recoverable: exiting now 
ERR! tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" 
ERR! Failed unpacking /tmp/npm-1305893882865/1305893885765-0.008730818051844835/tmp.tgz 
ERR! couldn't unpack /tmp/npm-1305893882865/1305893885765-0.008730818051844835/tmp.tgz to /tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents 
verbose about to build /home/Tema/node_modules/express 
ERR! error installing [email protected] Error: Failed tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm" 

Il y a des conseils couple que je googlé (cache de NPM propre et rebaseall), mais rien aidé . Alors, est-il possible d'utiliser NPM dans Cygwin?

+0

moi aussi! J'ai eu une erreur similaire comme ci-dessus et a fait un cache npm propre et aussi un rebaseall et maintenant npm installation express semble se bloquer avec gzip consommant 100% cpu? – molicule

+0

hmm, non, il montre les erreurs ci-dessus et quitte avec "npm pas ok". On dirait que nous devons passer à linux vm ... – spacevillain

+0

Il pourrait être utile de poser des questions à ce sujet dans #nodejs, si ce n'est déjà fait. –

Répondre

2

J'ai souvent le même problème.

Je ne sais pas comment le réparer, mais je sais que l'erreur se produit de manière irrégulière. Si vous essayez à nouveau d'installer le paquet npm, cela peut fonctionner. Continuez à réessayer et cela fonctionnera finalement. Quand il est bloqué à 100% CPU, il suffit de l'annuler (ctrl + c) et essayez à nouveau. De même, ne passez pas à une autre fenêtre pendant l'installation d'un package.

Vous pouvez également installer manuellement le package avec wget et tar à l'intérieur du dossier node_modules.

+0

Cela a fonctionné pour la troisième fois pour moi. – Shagglez

1

Essayez de supprimer les fichiers temporaires avec cette commande:

$ rm /tmp/npm-* 

puis installez à nouveau. travaillé pour moi.

1

petit patch pour /usr/local/lib/node_modules/npm/lib/utils/tar.js

--- tar.js.old 2011-07-15 15:23:09.205440100 +0700 
+++ tar.js 2011-07-15 15:25:58.327113300 +0700 
@@ -20,6 +20,7 @@ 
, relativize = require("./relativize") 
, cache = require("../cache") 
, excludes = require("./excludes") 
+ , child_process = require("child_process"); 

exports.pack = pack 
exports.unpack = unpack 
@@ -168,13 +169,17 @@ 
//console.error(npm.config.get("gzipbin")+" --decompress --stdout " 
// +tarball+" | "+npm.config.get("tar")+" -mvxpf - -o -C " 
// +tmp) 
- pipe(spawn(npm.config.get("gzipbin") 
- , ["--decompress", "--stdout", tarball] 
- , process.env, false) 
- , spawn(npm.config.get("tar") 
- , ["-mvxpf", "-", "-o", "-C", tmp] 
- , process.env, false) 
- , function (er) { 
+ // pipe(spawn(npm.config.get("gzipbin") 
+ // , ["--decompress", "--stdout", tarball] 
+ // , process.env, false) 
+ // , spawn(npm.config.get("tar") 
+ // , ["-mvxpf", "-", "-o", "-C", tmp] 
+ // , process.env, false) 
+ // , function (er) { 
+ 
+ child_process.exec(npm.config.get("gzipbin")+" --decompress --stdout " 
+ +tarball+" | "+npm.config.get("tar")+" -mvxpf - --no-same-owner -C " +tmp 
+ , function (er, stdout, stderr) { 
// if we're not doing ownership management, 
// then we're done now. 
if (er) return log.er(cb, 
+0

J'ai essayé ce correctif et cela ne fonctionne PAS (noeud 0.4.11, npm 1.0.27, Cygwin/WinXP). L'erreur était: 'npm ERR! impossible de déballer /tmp/nmp/1314406924278/1314406936833-0.9859440890140831/tmp.tgz à /tmp/npm-1314406924278/1314406936833-0.9859440890140831/contenu npm ERR!Erreur: EACCES, autorisation refusée '/tmp/npm-1314406924278/1314406936833-0.9859440890140831/contents/___ package.npm/package''. J'ai placé 'unsafe-perm' et ai assuré que les annuaires ont permis des permissions, d'autres idées? (J'ai essayé toutes les suggestions énumérées dans cette question) – Amro

+0

J'ai le même problème. –

3
  1. grillent Le répertoire tmp loin

    rm -R /tmp/* 
    
  2. de Assainissons de NPM cache

    npm cache clean 
    
  3. Quittez votre shell actuel et démarrez un shell ash ou dash up (à partir de dans cygwin/bin)

  4. Dans l'interpréteur de commandes ash (ou dash), exécutez la commande rebaseall.

    /bin/rebaseall -v 
    
  5. Quittez et redémarrez un nouveau shell bash.

  6. Essayez à nouveau votre commande npm.

    npm install <package> 
    
+0

Ne fonctionne pas pour moi :( –

+0

npm cache propre l'a fait pour moi, merci :) – mck

0

Si cela se produit, essayez de supprimer des modules partiellement extraites du répertoire .npm (peut être situé dans le répertoire personnel: ~/.npm) et essayez à nouveau (deux fois ou plus).

Questions connexes