带有 npm update -g 的混乱 [英] SNAFU with npm update -g

查看:59
本文介绍了带有 npm update -g 的混乱的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试更新 npm 并且一切都崩溃了:

I tried updating npm and all hell broke loose:

Environment check
✔ $HOME
✔ Yo
✔ Compass
✔ Ruby
✔ Git
✔ Node.js
✔ npm
dist: $ npm update -g
npm http GET https://registry.npmjs.org/envcheck
npm http GET https://registry.npmjs.org/bower
npm http GET https://registry.npmjs.org/generator-h5bp
npm http GET https://registry.npmjs.org/generator-mocha
npm http GET https://registry.npmjs.org/generator-zf5
npm http GET https://registry.npmjs.org/headstart
npm http GET https://registry.npmjs.org/cordova
npm http GET https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/generator-webapp
npm http GET https://registry.npmjs.org/yeoman-foundation
npm http GET https://registry.npmjs.org/yo
npm http GET https://registry.npmjs.org/phonegap
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/generator-h5bp
npm http GET https://registry.npmjs.org/yeoman-generator
npm http 200 https://registry.npmjs.org/envcheck
npm http 200 https://registry.npmjs.org/bower
npm http 200 https://registry.npmjs.org/generator-zf5
npm http 200 https://registry.npmjs.org/headstart
npm http 200 https://registry.npmjs.org/generator-mocha
npm http 200 https://registry.npmjs.org/grunt-cli
npm http GET https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/resolve
npm http 200 https://registry.npmjs.org/cordova
npm http 200 https://registry.npmjs.org/generator-webapp
npm http 200 https://registry.npmjs.org/yeoman-foundation
npm http 200 https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/yeoman-generator
npm http 200 https://registry.npmjs.org/resolve
npm http 304 https://registry.npmjs.org/findup-sync
npm http GET https://registry.npmjs.org/glob
npm http GET https://registry.npmjs.org/lodash
npm http 200 https://registry.npmjs.org/yo
npm http 200 https://registry.npmjs.org/phonegap
npm http 200 https://registry.npmjs.org/glob
npm http 200 https://registry.npmjs.org/lodash
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.14.tgz
npm http GET https://registry.npmjs.org/bower/-/bower-1.3.12.tgz
npm http GET https://registry.npmjs.org/envcheck/-/envcheck-1.1.0.tgz
npm http GET https://registry.npmjs.org/generator-zf5/-/generator-zf5-0.9.5.tgz
npm http GET https://registry.npmjs.org/generator-mocha/-/generator-mocha-0.1.6.tgz
npm http GET https://registry.npmjs.org/headstart/-/headstart-1.3.1.tgz
npm http GET https://registry.npmjs.org/generator-webapp/-/generator-webapp-0.5.1.tgz
npm http GET https://registry.npmjs.org/yo/-/yo-1.3.3.tgz
npm http GET https://registry.npmjs.org/cordova/-/cordova-4.1.3-nightly.2014.10.21.tgz
npm http GET https://registry.npmjs.org/phonegap/-/phonegap-4.1.2-0.22.10.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt'
npm ERR! error rolling back  nopt@1.0.10 { [Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt' }
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "update" "-g"
npm ERR! cwd /Volumes/3 TB LaCie/* Projects/14-03157 Frontgate Windows App/Working/app/bower_components/bootstrap/dist
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.9
npm ERR! path /usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/.bin/nopt'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/generator-h5bp/node_modules/yeoman-generator'
npm ERR! error rolling back  yeoman-generator@0.14.2 { [Error: EACCES, unlink '/usr/local/lib/node_modules/generator-h5bp/node_modules/yeoman-generator']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/generator-h5bp/node_modules/yeoman-generator' }
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob'
npm ERR! error rolling back  glob@3.2.11 { [Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/grunt-cli/node_modules/findup-sync/node_modules/glob' }
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/resolve'
npm ERR! error rolling back  resolve@0.3.1 { [Error: EACCES, unlink '/usr/local/lib/node_modules/grunt-cli/node_modules/resolve']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/grunt-cli/node_modules/resolve' }
npm http 200 https://registry.npmjs.org/bower/-/bower-1.3.12.tgz
npm http 200 https://registry.npmjs.org/generator-mocha/-/generator-mocha-0.1.6.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/generator-mocha'
npm ERR! error rolling back  generator-mocha@0.1.6 { [Error: EACCES, unlink '/usr/local/lib/node_modules/generator-mocha']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/generator-mocha' }
npm http 200 https://registry.npmjs.org/headstart/-/headstart-1.3.1.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/headstart'
npm ERR! error rolling back  headstart@1.3.1 { [Error: EACCES, unlink '/usr/local/lib/node_modules/headstart']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/headstart' }
npm http 200 https://registry.npmjs.org/generator-webapp/-/generator-webapp-0.5.1.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/generator-webapp'
npm ERR! error rolling back  generator-webapp@0.5.1 { [Error: EACCES, unlink '/usr/local/lib/node_modules/generator-webapp']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/generator-webapp' }
npm http 200 https://registry.npmjs.org/cordova/-/cordova-4.1.3-nightly.2014.10.21.tgz
npm http 200 https://registry.npmjs.org/generator-zf5/-/generator-zf5-0.9.5.tgz
npm http 200 https://registry.npmjs.org/envcheck/-/envcheck-1.1.0.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/envcheck'
npm ERR! error rolling back  envcheck@1.1.0 { [Error: EACCES, unlink '/usr/local/lib/node_modules/envcheck']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/envcheck' }
npm http 200 https://registry.npmjs.org/phonegap/-/phonegap-4.1.2-0.22.10.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/bower'
npm ERR! error rolling back  bower@1.3.12 { [Error: EACCES, unlink '/usr/local/lib/node_modules/bower']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/bower' }
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/cordova'
npm ERR! error rolling back  cordova@4.1.3-nightly.2014.10.21 { [Error: EACCES, unlink '/usr/local/lib/node_modules/cordova']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/cordova' }
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/generator-zf5'
npm ERR! error rolling back  generator-zf5@0.9.5 { [Error: EACCES, unlink '/usr/local/lib/node_modules/generator-zf5']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/generator-zf5' }
npm http 200 https://registry.npmjs.org/yo/-/yo-1.3.3.tgz
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/yo'
npm ERR! error rolling back  yo@1.3.3 { [Error: EACCES, unlink '/usr/local/lib/node_modules/yo']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/yo' }
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/phonegap'
npm ERR! error rolling back  phonegap@4.1.2-0.22.10 { [Error: EACCES, unlink '/usr/local/lib/node_modules/phonegap']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/phonegap' }
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.14.tgz
sudonpm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back  npm@2.1.14 { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/npm' }
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Volumes/3 TB LaCie/* Projects/14-03157 Frontgate Windows App/Working/app/bower_components/bootstrap/dist/npm-debug.log
npm ERR! not ok code 0
dist: $ sudo npm update -g

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
sudo: npm: command not found
dist: $ npm update
-bash: /usr/local/bin/npm: No such file or directory
dist: $ cd /
/: $ npm update -g
-bash: /usr/local/bin/npm: No such file or directory
/: $ npm --version
-bash: /usr/local/bin/npm: No such file or directory
/: $ where npm
-bash: where: command not found
/: $ which npm
/: $ envcheck
-bash: /usr/local/bin/envcheck: No such file or directory
/: $ curl http://npmjs.org/install.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0    797      0 --:--:-- --:--:-- --:--:--   800
sh: line 1: html: No such file or directory
sh: line 2: syntax error near unexpected token `<'
'h: line 2: `<head><title>301 Moved Permanently</title></head>
/: $ npm update -g
-bash: /usr/local/bin/npm: No such file or directory
/: $ envcheck
-bash: /usr/local/bin/envcheck: No such file or directory
/: $ curl https://npmjs.org/install.sh | sudo sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   193  100   193    0     0    163      0  0:00:01  0:00:01 --:--:--   164
sh: line 1: html: No such file or directory
sh: line 2: syntax error near unexpected token `<'
'h: line 2: `<head><title>301 Moved Permanently</title></head>
/: $ npm update
-bash: /usr/local/bin/npm: No such file or directory

没有任何效果.不是 Yeoman、Bower、Grunt 等.全部来自和更新.

Nothing is working. Not Yeoman, Bower, Grunt, etc. All from and update.

我做错了吗?

我应该怎么做?

我现在该怎么办?

仅供参考,我还在学习 Unix CLI,所以说,慢慢来,拜托了 :-)

FYI, I'm still learning Unix CLI so speak, slowly, please :-)

提前致谢.

推荐答案

当升级由于权限问题而失败时(这就是这里发生的事情... 'EACCES' 基本上意味着访问被拒绝),通常意味着 Node/NPM最初安装在您需要 sudo 访问的位置.这被认为是不好的做法,但对于初学者来说很容易,因为 sudo 使一切都自动正常工作",无论您在哪里安装它.现在在升级过程中,您没有使用 sudo,这可能会更改您确实有权访问的文件,而其他文件会抛出错误并保持不变.

When an upgrade fails due to permissions issues (which is what happened here... 'EACCES' basically means access denied), it usually means Node/NPM was originally installed in a location you need sudo to access. This is considered bad practice, but it is easy for beginners because sudo makes everything "just work" automagically, no matter where you install it. And now during the upgrade, you did not use sudo, which may change files you do have access to, while others throw errors and remain unmodified.

所以:

我做错了吗?是的.最有可能的是,在安装 Node 期间,您使用了 sudo.通过这样做,您导致大多数未来的命令也需要 sudo.但是您在第一次尝试升级时没有使用它.

Did I do something wrong? Yes. Most likely, during installation of Node, you used sudo. By doing so, you caused most future commands to need sudo as well. But you did not use it during the first upgrade attempt.

我应该怎么做?如果您在第一次初始升级尝试中使用了 sudo,它可能会奏效.第二次,当你确实包含 sudo 时,失败了,因为第一次尝试(没有 sudo)破坏了你使用 npm 命令的能力.所以它因为不同的原因失败了.

What should I have done differently? It is likely that if you had used sudo for that first initial upgrade attempt, it would have worked. The second time, when you did include sudo, failed because the first attempt (without sudo) destroyed your ability to use the npm command at all. So it failed for a different reason.

我现在该怎么办?从头开始重新安装是唯一可靠的出路.如果您愿意,请尝试在不使用 sudo 的情况下使其工作.通过这样做,您可以保证未来的命令,无论是否带有 sudo,都将具有足够的访问权限来实现其预期效果.

What the heck do I do now? Re-install from scratch is the only reliable way out. And if you're up for it, try to make it work without using sudo at all. By doing so, you guarantee that future commands, with or without sudo, will have enough access permissions to have their intended effect.

要完全重新安装并使您的机器再次干净闪亮,请参阅此处:如何完全卸载 Node.js,并从头开始重新安装(Mac OS X)

To completely re-install and make your machine clean and shiny again, see here: How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

我强烈推荐使用 Homebrew 的方法.如果您确实出于习惯尝试使用 sudo,它会冲您大喊大叫.

I highly recommend the approach using Homebrew. If you do attempt to use sudo out of habit, it will yell at you.

这篇关于带有 npm update -g 的混乱的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆