使用最新的nodejs 1.10.15安装yeoman

我的系统从Ubuntu 13.04迁移到13.10,我已经安装了Ubuntu Logiteque提供的最新的nodejs软件包(这是自动软件包安装程序的frech名称,不知道它是否与英文相同…)。

试图用命令安装yeoman:

npm install -g yo 

给我以下错误:

  npm http 200 https://registry.npmjs.org/is/-/is-0.2.7.tgz /usr/local/bin/yo -> /usr/local/lib/node_modules/yo/cli.js > yo@1.1.2 postinstall /usr/local/lib/node_modules/yo > node ./scripts/doctor sh: 1: node: not found 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.2 postinstall: `node ./scripts/doctor` npm ERR! `sh "-c" "node ./scripts/doctor"` failed with 127 npm ERR! npm ERR! Failed at the yo@1.1.2 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 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-15-generic npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "yo" npm ERR! cwd /var/www 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! /var/www/npm-debug.log npm ERR! not ok code 0 

看着/usr/share/doc/nodejs/README.Debian:

 The upstream name for the Node.js interpreter command is "node". In Debian the interpreter command has been changed to "nodejs". This was done to prevent a namespace collision: other commands use the same name in their upstreams, such as ax25-node from the "node" package. Scripts calling Node.js as a shell command must be changed to instead use the "nodejs" command. 

所以我的结论是为了和nodejs 1.10.15一起工作,yeoman脚本应该把它的调用改成“node”到“nodejs”

因为我不知道如何改变它,所以我想知道:1.是否有另一个yeoman脚本可以使用nodejs 1.10.15 2.如果我降级了我的nodejs版本,安装脚本是否可以工作(如果是的话,我如何安装nodejs的降级版本)

感谢您的想法!

部分解决:

 ln -sf /usr/bin/nodejs /usr/bin/node 

使安装脚本的作品,但不知道如果解决scheme是干净的…

为了解决这个问题,你需要安装包nodejs-legacy。

 sudo apt-get install nodejs-legacy 

我相信这与另一个问题相似,我在这里发布的解决scheme可能有用。 具体来说, npm install -g yo命令给出 – > ERR! yo@1.1.0 postinstall:'node scripts / doctor.js' 。

基本上,克隆Yeoman回购和编辑package.json删除安装后调用doctor.js 。 几乎没有一个理想的解决scheme,但它为我工作..看到我的答案在其他线程的细节。

检查你是否有正确的语言和编码。 在我的设置中,我首先必须安装nodejs-legacy并且必须另外将LC_ALL更改为:

 export LC_ALL=en_US.utf8