当我给命令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
没有任何工作
节点很容易手动安装。 我也喜欢这样做,因为切换版本非常简单。
这也非常棒,因为您不需要将一些外部软件包存储库添加到apt
,并且在节点发布新版本时不必等待这些存储库进行更新。 一旦发布,你就可以得到更新。
# make a `~/.nodes/ folder mkdir -p ~/.nodes && cd ~/.nodes # download the binaries from nodejs.org # in this case, here's the linux version curl -O http://nodejs.org/dist/v0.10.12/node-v0.10.12-linux-x64.tar.gz # extract tar -xzf node-v0.10.12-linux-x64.tar.gz # rename folder to 0.10.12 mv node-v0.10.12-linux-x64 0.10.12 # create a `current` symlink ln -s 0.10.12 current # prepend ~/.nodes/bin to your path # you'll want to save this in ~/.bashrc or ~/.zshrc or something export PATH="~/.nodes/current/bin:$PATH" # cleanup rm ~/.nodes/node-v0.10.12-linux-x64.tar.gz
最好的部分是你可以重复任何其他版本的节点模式,随时更改current
符号链接,以切换你正在运行的版本,你很好去
% node --version v0.10.12 % npm --version 1.2.32 # switch versions to (eg) 0.10.5 % cd ~/.nodes && rm current && ln -s 0.10.5 current % node --version v0.10.5 % npm --version 1.2.18
编写可执行脚本时的附加指针
制作一个可执行文件
% touch ~/somefile && chmod +x ~/someifle && nano ~/somefile
文件内容
#!/usr/bin/env node console.log(process.version);
运行
% ./somefile v0.10.12
你正在运行一个非常老版本的node
和npm
。 你有节点v0.5,这是非常过时的。 升级到节点v0.10,事情将起作用。
用于Ubuntu的现代node.js版本可以通过Chris Lea的这个PPA获得
安装:
sudo apt-get install python-software-properties sudo add-apt-repository --yes ppa:chris-lea/node.js sudo apt-get install nodejs
UPDATE
看起来您的旧版本节点安装在/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
您应该卸载本地节点,或修复您的PATH:
export PATH=/usr/bin:$PATH