2014-03-06 106 views
4

我通過apt以及nodejs-legacy包安裝了nodejs,試圖快速瀏覽一下這個平臺。不會那麼容易。如何在Ubuntu 13.10上成功安裝node.js?

無論如何,搜索設備無法正常工作,並且我認爲這意味着安裝在某種程度上是不完整的。

谷歌搜索建議它可能與〜/ .npm目錄中的權限有關。我懷疑這一點,但我嘗試遞歸地向我的用戶遞送該目錄,並使用sudo運行命令「npm search」,兩者的結果相同。

額外的信息更新:

安裝步驟:

$sudo apt-get install nodejs nodejs-legacy // the latter makes a symlink 

運行命令的輸出:

$ npm search 
npm ERR! TypeError: Object.keys called on non-object 
npm ERR!  at Function.keys (native) 
npm ERR!  at stripData (/usr/share/npm/lib/search.js:89:28) 
npm ERR!  at Array.map (native) 
npm ERR!  at filter (/usr/share/npm/lib/search.js:73:6) 
npm ERR!  at /usr/share/npm/lib/search.js:63:21 
npm ERR!  at RegClient.requestAll_ (/usr/share/npm/node_modules/npm-registry- client /lib/get.js:66:5) 
npm ERR!  at RegClient.<anonymous> (/usr/share/npm/node_modules/npm-registry-client /lib/get.js:58:19) 
npm ERR!  at fs.js:268:14 
npm ERR!  at /usr/lib/nodejs/graceful-fs/graceful-fs.js:103:5 
npm ERR!  at Object.oncomplete (fs.js:107:15) 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://bugs.debian.org/npm> 
npm ERR! or use 
npm ERR!  reportbug --attach /home/x/temp/npm-debug.log npm 

npm ERR! System Linux 3.11.6-031106-generic 
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "search" 
npm ERR! cwd /home/x/ 
npm ERR! node -v v0.10.15 
npm ERR! npm -v 1.2.18 
npm ERR! type called_on_non_object 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/x/npm-debug.log 
npm ERR! not ok code 0 

日誌文件信息:

0 info it worked if it ends with ok 
1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'search' ] 
2 info using [email protected] 
3 info using [email protected] 
4 warn Building the local index for the first time, please be patient 
5 verbose url raw /-/all 
6 verbose url resolving [ 'https://registry.npmjs.org/', './-/all' ] 
7 verbose url resolved https://registry.npmjs.org/-/all 
8 info trying registry request attempt 1 at 10:56:16 
9 http GET https://registry.npmjs.org/-/all 
10 http 200 https://registry.npmjs.org/-/all 
11 error TypeError: Object.keys called on non-object 
11 error  at Function.keys (native) 
11 error  at stripData (/usr/share/npm/lib/search.js:89:28) 
11 error  at Array.map (native) 
11 error  at filter (/usr/share/npm/lib/search.js:73:6) 
11 error  at /usr/share/npm/lib/search.js:63:21 
11 error  at /usr/share/npm/node_modules/npm-registry-client/lib/get.js:89:14 
11 error  at /usr/lib/nodejs/graceful-fs/graceful-fs.js:103:5 
11 error  at Object.oncomplete (fs.js:107:15) 
12 error If you need help, you may report this log at: 
12 error  <http://bugs.debian.org/npm> 
12 error or use 
12 error  reportbug --attach /home/x/npm-debug.log npm 
13 error System Linux 3.11.0-15-generic 
14 error command "/usr/bin/nodejs" "/usr/bin/npm" "search" 
15 error cwd /home/x 
16 error node -v v0.10.15 
17 error npm -v 1.2.18 
18 error type called_on_non_object 
19 verbose exit [ 1, true ] 

如何詮釋錯誤並糾正這個錯誤?我無法從這個調試信息中得到任何東西。

+0

日誌文件說什麼? – TheHippo

+0

Ubuntu或Linux用戶可能是這個問題的更好的地方? –

+1

從你的問題還不清楚,但是你是否按照[這裏]的說明安裝(https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#wiki-ubuntu-薄荷基本-OS)?我問,因爲我沒有跟蹤你爲什麼安裝X'以及'X'。這聽起來像你可能有麻煩,因爲你可能有效地安裝了兩個版本的節點,並以某種方式衝突。我的假設是你最近嘗試了這個安裝,0.10.15是從去年7月份開始的。我在過去的一個月左右在Ubuntu上做了0.10.25。 –

回答

0

按照上"Installing Node.js via package manager" wiki page, section "Ubuntu, Mint, elementary OS"的方向,在「獲取最近的節點的版本......」,這裏複製:

sudo add-apt-repository ppa:chris-lea/node.js 
sudo apt-get update 
sudo apt-get install python-software-properties python g++ make nodejs 

然而,的NodeJS遺留不爲我安裝兩種:

Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
The following NEW packages will be installed: 
    nodejs-legacy 
0 upgraded, 1 newly installed, 0 to remove and 6 not upgraded. 
Need to get 15.4 kB of archives. 
After this operation, 119 kB of additional disk space will be used. 
Get:1 http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ saucy/universe nodejs-legacy all 0.10.15~dfsg1-4 [15.4 kB] 
Fetched 15.4 kB in 0s (243 kB/s) 
Selecting previously unselected package nodejs-legacy. 
(Reading database ... 63176 files and directories currently installed.) 
Unpacking nodejs-legacy (from .../nodejs-legacy_0.10.15~dfsg1-4_all.deb) ... 
dpkg: error processing /var/cache/apt/archives/nodejs-legacy_0.10.15~dfsg1-4_all.deb (--unpack): 
trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs 0.10.26-1chl1~saucy1 
Processing triggers for man-db ... 
Errors were encountered while processing: 
/var/cache/apt/archives/nodejs-legacy_0.10.15~dfsg1-4_all.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1) 
1

雖然「ppa:chris-lea/node.js」做得很好(Moxley Stratton的回答很好),但我並不喜歡我的開發環境中的升級週期,不得不依賴於第三方PPA,具有不同的二進制文件名稱(nodejs,node),這些文件似乎與我的腳本混淆。

我從http://nodejs.org/dist/下載了預編譯的tar.gz節點,並用不同版本的自己的文件夾(prod,dev)進行維護。 在PATH中爲node和npm維護一個符號鏈接。我的系統(64位)E.g

cd node_base_folder 
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24-linux-x64.tar.gz 
tar -zvxf node-v0.10.24-linux-x64.tar.gz 
cd /usr/local/bin 
ln -s node_base_folder/node-v0.10.24-linux-x64/bin/node 
ln -s node_base_folder/node-v0.10.24-linux-x64/bin/npm 

每當你想要移動到新的節點版本。只需按照上述步驟操作(更改版本後)

+0

我同意你的看法,它應該能夠在Ubuntu下「本地」安裝。如果不包含,則包裝系統中必定存在錯誤。 – user1603472