我只是尝试做一个npm安装,但最后得到关于医生,js的这个错误。我需要担心吗?
npm install -g yo
。
npm http 304 https://registry.npmjs.org/graceful-fs
npm http 200 https://registry.npmjs.org/fstream/-/fstream-0.1.25.tgz
/usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js
> yo@1.1.0 postinstall /usr/local/lib/node_modules/yo
> node scripts/doctor.js
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian
npm ERR! yo@1.1.0 postinstall: `node scripts/doctor.js`
npm ERR! `sh "-c" "node scripts/doctor.js"` failed with 1
npm ERR!
npm ERR! Failed at the yo@1.1.0 postinstall script.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node scripts/doctor.js
npm ERR! You can get their info via:
npm ERR! npm owner ls yo
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.11.0-12-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "yo"
npm ERR! cwd /etc/libvirt/qemu
npm ERR! node -v v0.10.15
npm ERR! npm -v 1.2.18
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /etc/libvirt/qemu/npm-debug.log
npm ERR! not ok code 0
EDIT_的 _ __ _ __ _ __ _ _ - < / p>
由于某种原因,节点-v在终端
中没有输出任何内容我安装了最新的节点:
WebstormProjects #sudo apt-get install node 阅读包裹清单......完成 构建依赖树 阅读国家信息......完成 节点已经是最新版本了。 0升级,0新安装,0删除,143未升级。
答案 0 :(得分:29)
此链接的解决方案对我有用:
http://plaidzooks.tumblr.com/post/36894116867/using-node-js-on-debian-ubuntu-systems
Ubuntu附带了一个自动创建链接的包,因此命令'nodejs'只能通过创建链接作为'node'调用。
sudo apt-get install nodejs-legacy
这让Yeoman工作了。
答案 1 :(得分:10)
同样我遇到了同样的问题(虽然在Mac上)。我将节点卸载并升级到最新版本(v0.10.24)但没有成功。
符号链接修复确实对我有用,虽然稍作调整:
sudo ln -s /usr/local/bin/node /usr/bin/node
答案 2 :(得分:7)
我认为这可能是由于系统上安装了node
的方式。显然,有时在通过包管理器安装Node时,链接的二进制文件为nodejs
,因此nodejs _command_
是适用于您的计算机的命令,而不是更常见的node _comamand_
。您可以从nodejs.org重新安装Node(最新版本0.10.24
),或者从this related issue尝试此解决方案:
对于任何希望仍然使用其操作系统节点包的人来说,简单的解决方案是确定操作系统上安装节点的位置,然后创建符号链接。
例如我在ubuntu上遇到了问题,安装目录是/ usr / bin。要创建符号链接,您可以运行:
sudo ln -s / usr / bin / nodejs / usr / bin / node
在Windows中可以使用mklink命令。确保以管理员身份打开命令提示符
答案 3 :(得分:6)
您必须以这种方式安装nodejs:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
答案 4 :(得分:3)
我在干净的Ubuntu 13.10安装上遇到了同样的错误,没有任何sym链接(node&gt; nodejs)或安装/卸载帮助了我。
我对节点环境的理解不够正确,但我能够通过克隆repo并从package.json中删除postinstall检查来全局安装Yeoman。
如果有其他人想要尝试这个解决方案:
克隆Yeoman ..
cd ~
git clone https://github.com/yeoman/yo
编辑package.json ..
nano yo/package.json
..删除这些行..
"scripts": {
"test": "grunt",
"postinstall": "node ./scripts/doctor",
"postupdate": "node ./scripts/doctor"
},
然后,使用npm ..
安装它cd yo
npm install -g
如果你想清理你可以删除Yeoman回购..
cd ..
rm -R yo/
显然你的里程可能会有所不同,但到目前为止我的工作正常。
我还注意到我能够独立于安装过程成功运行doctor.js
脚本。不知道为什么它一开始就这么难以实现......
答案 5 :(得分:0)
在Ubuntu 14.04上,我尝试了安装旧版程序包(按照安东尼奥的回答)并手动创建符号链接(根据斯蒂芬的回答)。都没有奏效。 Ubuntu软件包的node.js版本为0.10.25,但Yeoman似乎需要更新的版本。
在installing the latest version of node.js from NodeSource(目前为v6.9.1)之后,我能够使用npm install -g yo
安装Yeoman。
答案 6 :(得分:-1)
要解决此问题,您需要安装包nodejs-legacy。
sudo apt-get install nodejs-legacy