【问题标题】:Error: npm update错误:npm 更新
【发布时间】:2015-07-09 11:58:39
【问题描述】:

我正在使用 vagrant 设置我的环境,当我使用 sudo npm update 时,我收到此错误。

npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "update"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path ../mime/cli.js
npm ERR! code EPROTO
npm ERR! errno -71

npm ERR! EPROTO, symlink '../mime/cli.js'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "update"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path npm-debug.log.7dead0fa1a1d874805ab6e477bd46e0e
npm ERR! code ETXTBSY
npm ERR! errno -26

npm ERR! ETXTBSY, rename 'npm-debug.log.7dead0fa1a1d874805ab6e477bd46e0e'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /vagrant/myapp/npm-debug.log

注意 1:我正在使用 trusty32 盒子,我也在使用节点 0.12、npm 2.7.4 和 mongodb 2.6。

注意 2:我无法安装 mongoose 和 package.json 中的默认 express-generator npm 模块

UPDATE1:当我尝试“sudo npm install mongoose -save”时出现 Npm 错误

npm ERR! tar.unpack untar error /home/vagrant/.npm/wrappy/1.0.1/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/brace-expansion/1.1.0/package
.tgz
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path /vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node_mod
ules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-
gyp/node_modules/tar-pack/node_modules/fstream-ignore/node_modules/minimatch/tes
t/extglob-ending-with-state-char.js
npm ERR! code EPERM
npm ERR! errno -1

npm ERR! Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modules/m
ongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_mo
dules/node-pre-gyp/node_modules/tar-pack/node_modules/fstream-ignore/node_module
s/minimatch/test/extglob-ending-with-state-char.js'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modul
es/mongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/nod
e_modules/node-pre-gyp/node_modules/tar-pack/node_modules/fstream-ignore/node_mo
dules/minimatch/test/extglob-ending-with-state-char.js']
npm ERR!   errno: -1,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node
_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-
pre-gyp/node_modules/tar-pack/node_modules/fstream-ignore/node_modules/minimatch
/test/extglob-ending-with-state-char.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path /vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node_mod
ules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-
gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/readable-stre
am/lib/_stream_duplex.js
npm ERR! code EPERM
npm ERR! errno -1

npm ERR! Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modules/m
ongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_mo
dules/node-pre-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_module
s/readable-stream/lib/_stream_duplex.js'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modul
es/mongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/nod
e_modules/node-pre-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_mo
dules/readable-stream/lib/_stream_duplex.js']
npm ERR!   errno: -1,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node
_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-
pre-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/readable-
stream/lib/_stream_duplex.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path npm-debug.log.547bda60a6af6dbfaba7873fdc566e0c
npm ERR! code ETXTBSY
npm ERR! errno -26

npm ERR! ETXTBSY, rename 'npm-debug.log.547bda60a6af6dbfaba7873fdc566e0c'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path /vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node_mod
ules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-
gyp/node_modules/request/node_modules/combined-stream/node_modules/delayed-strea
m/lib/delayed_stream.js
npm ERR! code EPERM
npm ERR! errno -1

npm ERR! Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modules/m
ongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_mo
dules/node-pre-gyp/node_modules/request/node_modules/combined-stream/node_module
s/delayed-stream/lib/delayed_stream.js'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modul
es/mongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/nod
e_modules/node-pre-gyp/node_modules/request/node_modules/combined-stream/node_mo
dules/delayed-stream/lib/delayed_stream.js']
npm ERR!   errno: -1,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node
_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-
pre-gyp/node_modules/request/node_modules/combined-stream/node_modules/delayed-s
tream/lib/delayed_stream.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._basetostring/3.0.0/pa
ckage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._createpadding/3.6.0/p
ackage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._createpadding/3.6.0/p
ackage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._createpadding/3.6.0/p
ackage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._basetostring/3.0.0/pa
ckage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/lodash._basetostring/3.0.0/pa
ckage.tgz
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path /vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node_mod
ules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-
gyp/node_modules/request/node_modules/har-validator/node_modules/is-my-json-vali
d/test/json-schema.js
npm ERR! code EPERM
npm ERR! errno -1

npm ERR! Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modules/m
ongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_mo
dules/node-pre-gyp/node_modules/request/node_modules/har-validator/node_modules/
is-my-json-valid/test/json-schema.js'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modul
es/mongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/nod
e_modules/node-pre-gyp/node_modules/request/node_modules/har-validator/node_modu
les/is-my-json-valid/test/json-schema.js']
npm ERR!   errno: -1,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node
_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-
pre-gyp/node_modules/request/node_modules/har-validator/node_modules/is-my-json-
valid/test/json-schema.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Linux 3.13.0-49-generic
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "mongoose"
npm ERR! node v0.12.2
npm ERR! npm  v2.7.4
npm ERR! path /vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node_mod
ules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-pre-
gyp/node_modules/request/node_modules/har-validator/node_modules/bluebird/js/bro
wser/bluebird.min.js
npm ERR! code EPERM
npm ERR! errno -1

npm ERR! Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modules/m
ongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_mo
dules/node-pre-gyp/node_modules/request/node_modules/har-validator/node_modules/
bluebird/js/browser/bluebird.min.js'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, open '/vagrant/myapp/node_modules/mongoose/node_modul
es/mongodb/node_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/nod
e_modules/node-pre-gyp/node_modules/request/node_modules/har-validator/node_modu
les/bluebird/js/browser/bluebird.min.js']
npm ERR!   errno: -1,
npm ERR!   code: 'EPERM',
npm ERR!   path: '/vagrant/myapp/node_modules/mongoose/node_modules/mongodb/node
_modules/mongodb-core/node_modules/bson/node_modules/bson-ext/node_modules/node-
pre-gyp/node_modules/request/node_modules/har-validator/node_modules/bluebird/js
/browser/bluebird.min.js' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! tar.unpack untar error /home/vagrant/.npm/ansi-styles/2.0.1/package.tgz

npm ERR! tar.unpack untar error /home/vagrant/.npm/has-ansi/1.0.3/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/strip-ansi/2.0.1/package.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/escape-string-regexp/1.0.3/pa
ckage.tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/supports-color/1.3.1/package.
tgz
npm ERR! tar.unpack untar error /home/vagrant/.npm/graceful-readlink/1.0.1/packa
ge.tgz

npm ERR! Please include the following file with any support request:
npm ERR!     /vagrant/myapp/npm-debug.log

UPDATE2:使用 npm update 切换到 nvm 效果更好,但我无法安装 mongoose,但遇到了同样的错误

UPDATE3:我认为问题是因为路径

【问题讨论】:

  • 尝试在 Vagrant 正在挂载的 app 目录上运行 chmod 777,或者在 vagrant 机器上运行 sudo npm update。我认为这是因为 npm 无法写入 app 目录。
  • chmod777 ?.我说,我用 sudo npm update
  • Chmod 777 如果 npm 无法写入应用程序目录会有所帮助——我怀疑这是问题所在。需要 /vagrant/myapp/npm-debug.log 的内容来进一步调试。
  • 我尝试了 chmod777 它可以与 npm update 一起使用,但我仍然无法安装 mongoose,我在哪里可以添加我的 npm-log 文件?

标签: node.js ubuntu npm ubuntu-14.04


【解决方案1】:

npm使用sudo有两个问题

  1. 99 个这样的问题。
  2. 这是security issue

最好的解决方案是使用节点版本管理器。我使用nvm。另一个名为n 的也存在。

感觉就像“倒退”了几步,我抗拒了一两个星期,但做出改变是值得的。

注意:您应该卸载“sudo”版本的 node.js,然后按照 github 页面上的说明安装 nvm。

【讨论】:

  • 我切换到 nvm 并尝试安装 mongoose,我得到了同样的错误,它要求我使用 sudo 仍然无法工作
  • @isimmons 使用 nvm 通过将 node 安装为当前用户来消除 sudo 问题。这意味着没有sudo,没有安全问题,也没有此处描述的问题。
  • @MichaelCole 感谢您的解释。如果没有 sudo,我仍然无法安装 npm -g 包。我使用 n 而不是 nvm,这是在遇到其他问题之后,所以也许从头开始使用 nvm 可以解决我的问题。
  • @isimmons 我更新了链接和注释。如果还是要sudo,可能是因为需要卸载sudo版本的node.js
【解决方案2】:

您使用的是旧版本的 NPM,当前最新版本是 2.8.4,您当前使用的是 2.7.4。 2.7.5 的发行说明提到了已修复的符号链接问题。

更新 NPM 应该可以解决这个问题,运行:

sudo npm install npm -g

【讨论】:

    【解决方案3】:

    这里2.1.7是你要安装的版本。

    sudo npm install -g npm@2.1.7
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-11
      • 2017-10-20
      • 2019-05-16
      • 2015-04-18
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      相关资源
      最近更新 更多