npm install -g yo命令给出 - >呃! yo@1.1.0 postinstall:`node scripts / doctor.js`

时间:2014-01-02 10:39:50

标签: npm yeoman

我只是尝试做一个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未升级。

7 个答案:

答案 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