2013-07-04 119 views
4

當我發出命令npm install express它引發以下錯誤。在Ubuntu機NPM安裝給出錯誤安裝快遞

[email protected]:~/TestScripts$ sudo npm install -g express 
npm ERR! error installing [email protected] Error: Unsupported 
npm ERR! error installing [email protected]  at checkEngine (/usr/local/lib/node_modules/npm/lib/install.js:493:14) 
npm ERR! error installing [email protected]  at Array.0 (/usr/local/lib/node_modules/npm/node_modules/slide/lib/bind-actor.js:15:8) 
npm ERR! error installing [email protected]  at LOOP (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:15:13) 
npm ERR! error installing [email protected]  at chain (/usr/local/lib/node_modules/npm/node_modules/slide/lib/chain.js:20:4) 
npm ERR! error installing [email protected]  at installOne_ (/usr/local/lib/node_modules/npm/lib/install.js:470:3) 
npm ERR! error installing [email protected]  at installOne (/usr/local/lib/node_modules/npm/lib/install.js:411:3) 
npm ERR! error installing [email protected]  at /usr/local/lib/node_modules/npm/lib/install.js:347:9 
npm ERR! error installing [email protected]  at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:35 
npm ERR! error installing [email protected]  at Array.forEach (native) 
npm ERR! error installing [email protected]  at /usr/local/lib/node_modules/npm/node_modules/slide/lib/async-map.js:54:11 
npm ERR! error rolling back [email protected] Error: UNKNOWN, Unknown error '/usr/local/lib/node_modules/express' 
npm ERR! Unsupported 
npm ERR! Not compatible with your version of node/npm: [email protected] 
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 

沒有什麼工作。

+0

什麼是你的Ubuntu版本? – user568109

回答

16

節點是很容易的手動安裝。我喜歡這樣做,因爲切換版本非常簡單。

這也很棒,因爲您不需要將一些外部軟件包存儲庫添加到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 (e.g.) 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 
+0

謝謝@naomik。我用同樣的方法來升級使用源代碼的節點。問題解決了。學習到教訓了 :) – Gaurav

10

您正在運行的版本太舊,nodenpm。你有節點v0.5,這是非常過時的。升級到節點v0.10,事情就會起作用。

現代的node.js版本的Ubuntu通過this PPA from Chris Lea

可用於安裝:

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 
+3

我已正確識別您的問題。如果你不會付出比「不起作用」更多的努力來幫助我們,那麼你就不值得我們的幫助。 –

+0

@PeterLyons起初你的評論似乎讓我有點憤怒,但我已經更好地回答了問題和答案,而且你完全正確。 – gustavohenke

+0

sudo apt-get install python-software-properties - >這個命令很好用。 add-apt-respository命令也適用。但sudo apt-get install nodejs執行但仍然顯示節點 - 版本v0.5.11-pre – Gaurav