我正在尝试在cygwin上使用NPM,但一直有以下错误:
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 express@2.3.5 Error: Failed tar "-mvxpf" "-" "--no-same-owner" "-C" "/tmp/npm-1305893882865/1305893885765-0.008730818051844835/contents/___package.npm"
我搜索了几个建议(npm cache clean和rebaseall),但没有任何帮助。那么,有没有办法在Cygwin中使用NPM?
答案 0 :(得分:3)
吹掉tmp目录
rm -R /tmp/*
清除npm的缓存
npm cache clean
退出当前的shell并启动灰烬或破折号的外壳(来自cygwin / bin)
在ash(或破折号)shell中执行rebaseall命令。
/bin/rebaseall -v
退出并重新启动新的bash shell。
再次尝试你的npm命令。
npm install <package>
答案 1 :(得分:2)
我经常遇到同样的问题。
我不知道如何解决它,但我确实知道错误不规则地发生。如果您尝试再次安装npm软件包,它可能会起作用。只是继续重试,它最终会起作用。
当它停留在100%cpu时,只需取消它(ctrl + c)然后再试一次。另外,在安装软件包时不要切换到另一个窗口。
您也可以在node_modules
文件夹中手动安装包含wget和tar的软件包。
答案 2 :(得分:1)
尝试使用以下命令删除临时文件:
$ rm /tmp/npm-*
然后重新安装。为我工作。
答案 3 :(得分:1)
/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,
答案 4 :(得分:0)
如果发生这种情况,请尝试从.npm目录中删除部分提取的模块(可能位于主目录:〜/ .npm)并再次尝试(两次或更多次)。