Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 安装express时出现NPM安装错误_Node.js_Ubuntu_Express_Npm - Fatal编程技术网

Node.js 安装express时出现NPM安装错误

Node.js 安装express时出现NPM安装错误,node.js,ubuntu,express,npm,Node.js,Ubuntu,Express,Npm,当我发出命令npm install express时,它抛出以下错误。在ubuntu机器上 gaurav@gaurav-Mini-Monster:~/TestScripts$ sudo npm install -g express npm ERR! error installing express@3.3.3 Error: Unsupported npm ERR! error installing express@3.3.3 at checkEngine (/usr/local/lib/

当我发出命令
npm install express
时,它抛出以下错误。在ubuntu机器上

gaurav@gaurav-Mini-Monster:~/TestScripts$ sudo npm install -g express
npm ERR! error installing express@3.3.3 Error: Unsupported
npm ERR! error installing express@3.3.3     at checkEngine (/usr/local/lib/node_modules/npm/lib/install.js:493:14)
npm ERR! error installing express@3.3.3     at Array.0 (/usr/local/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8)
npm ERR! error installing express@3.3.3     at LOOP (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:13)
npm ERR! error installing express@3.3.3     at chain (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:20:4)
npm ERR! error installing express@3.3.3     at installOne_ (/usr/local/lib/node_modules/npm/lib/install.js:470:3)
npm ERR! error installing express@3.3.3     at installOne (/usr/local/lib/node_modules/npm/lib/install.js:411:3)
npm ERR! error installing express@3.3.3     at /usr/local/lib/node_modules/npm/lib/install.js:347:9
npm ERR! error installing express@3.3.3     at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:35
npm ERR! error installing express@3.3.3     at Array.forEach (native)
npm ERR! error installing express@3.3.3     at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:11
npm ERR! error rolling back express@3.3.3 Error: UNKNOWN, Unknown error '/usr/local/lib/node_modules/express'
npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: connect@2.8.3
npm ERR! Required: {"node":">= 0.8.0"}
npm ERR! Actual:   {"npm":"1.0.106","node":"0.5.11-pre"}
npm ERR! 
npm ERR! System Linux 3.2.0-48-generic-pae
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express"
npm ERR! cwd /home/gaurav/TestScripts
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! code ENOTSUP
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/gaurav/TestScripts/npm-debug.log
npm not ok
我也试过了

sudo npm install express
npm install -g express
sudo npm install -g express

没有任何功能。

您正在运行的
节点
npm
的版本太旧了。您有非常过时的节点v0.5。升级到节点v0.10,一切正常

Ubuntu的现代node.js版本可通过

要安装:

sudo apt-get install python-software-properties
sudo add-apt-repository --yes ppa:chris-lea/node.js
sudo apt-get install nodejs
更新

看起来旧版本的节点安装在
/usr/local/bin/node
。Chris Lea PPA的新版本将位于
/usr/bin/node
。因此,要验证一切正常,请执行以下操作:

/usr/bin/npm --version #Should be approx 1.2
/usr/bin/node --version #should be approx v0.10
/usr/bin/npm install -g express
您应该卸载本地节点,或修复路径:

export PATH=/usr/bin:$PATH

节点很容易手动安装。我也喜欢这样做,因为切换版本非常容易

这也很好,因为您不需要将一些外部包存储库添加到
apt
,并且不必等到node发布新版本时更新这些存储库。您可以在更新发布后立即获取更新

#创建一个`~/.nodes/文件夹
mkdir-p~/.nodes和&cd~/.nodes
#从nodejs.org下载二进制文件
#在本例中,以下是linux版本
旋度-Ohttp://nodejs.org/dist/v0.10.12/node-v0.10.12-linux-x64.tar.gz
#提取
tar-xzf node-v0.10.12-linux-x64.tar.gz
#将文件夹重命名为0.10.12
mv节点-v0.10.12-linux-x64 0.10.12
#创建“当前”符号链接
ln-s 0.10.12电流
#在路径前添加~/.nodes/bin
#您需要将其保存在~/.bashrc或~/.zshrc或其他文件中
导出路径=“~/.nodes/current/bin:$PATH”
#清理
rm~/.nodes/node-v0.10.12-linux-x64.tar.gz

最好的一点是,您可以为任何其他版本的node重复该模式,随时更改当前的符号链接,以切换正在运行的版本,就可以开始了

%节点--版本
v0.10.12
%npm——版本
1.2.32
#将版本切换到(例如)0.10.5
%cd~/.节点和rm当前和ln-s 0.10.5当前
%节点——版本
v0.10.5
%npm——版本
1.2.18

编写可执行脚本时的附加指针

制作一个可执行文件

% touch ~/somefile && chmod +x ~/someifle && nano ~/somefile
文件内容

#!/usr/bin/env node
console.log(process.version);
运行它

% ./somefile
v0.10.12

我已经正确地发现了你的问题。如果你不打算付出比“它不起作用”更多的努力来帮助我们帮助你,你就不值得我们的帮助。@PeterLyons一开始你的评论似乎有点激怒了我,但我已经更好地阅读了问题和你的答案,你完全正确。sudo apt get install python software properties->此命令运行良好。addaptrepository命令也可以很好地工作。但sudo apt get install nodejs已执行,但仍向我显示节点——版本为v0.5.11-preSee我的更新。你现在有新旧版本,需要确保使用新版本。你的Ubuntu版本是什么?谢谢@naomik。我使用了使用源代码升级节点的相同方法。问题解决了。吸取的教训:)