什么版本的 npm 适用于 nodejs 0.10?

What version of npm works with nodejs 0.10?

我正尝试按照说明安装 CartoDD http://cartodb.readthedocs.org/en/latest/install.html

它需要 nodejs 0.10 才能工作。这是说明中指定的内容:

sudo add-apt-repository ppa:cartodb/nodejs-010 && sudo apt-get update
sudo apt-get install nodejs 
sudo apt-get install npm

它安装 nodejs 0.10 OK,但在尝试安装 npm 时出现此错误消息:

~$ sudo apt-get install npm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: nodejs-dev
       Depends: node-request but it is not going to be installed
       Depends: node-mkdirp but it is not going to be installed
       Depends: node-minimatch but it is not going to be installed
       Depends: node-semver but it is not going to be installed
       Depends: node-ini but it is not going to be installed
       Depends: node-graceful-fs but it is not going to be installed
       Depends: node-abbrev but it is not going to be installed
       Depends: node-nopt but it is not going to be installed
       Depends: node-fstream but it is not going to be installed
       Depends: node-rimraf but it is not going to be installed
       Depends: node-tar but it is not going to be installed
       Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

有个npm安装我觉得是和nodejs同时安装的:

~$ npm -v
1.4.3

这是 NodeJS 0.10 的正确 npm 版本吗?我不确定它是否已经存在。这个 apt-cache 输出真的更令人担忧,因为它说 npm 没有安装,但我刚刚执行它:

~$ apt-cache policy npm
npm:
  Installed: (none)
  Candidate: 1.1.4~dfsg-1
  Version table:
     1.1.4~dfsg-1 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages

还有一些其他的东西让我觉得这个安装有问题。 npm install 大部分工作,但稍后在安装过程中,当尝试安装 MAPS API 时,我收到此错误:

Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
gyp: Call to './util/has_cairo_freetype.sh' returned exit status 0.
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:337:16)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Linux 3.13.0-32-generic
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/raquel/Windshaft-cartodb/node_modules/windshaft/node_modules/canvas
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok 
npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz
npm http GET https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz
npm http 200 https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz
npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz
npm http GET https://github.com/CartoDB/carto/archive/master.tar.gz
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/home/raquel/Windshaft-cartodb/node_modules/windshaft/node_modules/carto/node_modules/mapnik-reference'
npm ERR! error rolling back  windshaft@0.51.0 { [Error: ENOTEMPTY, rmdir '/home/raquel/Windshaft-cartodb/node_modules/windshaft/node_modules/carto/node_modules/mapnik-reference']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/home/raquel/Windshaft-cartodb/node_modules/windshaft/node_modules/carto/node_modules/mapnik-reference' }
npm ERR! canvas@1.2.7-cdb1 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the canvas@1.2.7-cdb1 install script.
npm ERR! This is most likely a problem with the canvas package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls canvas
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.13.0-32-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install"
npm ERR! cwd /home/raquel/Windshaft-cartodb
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ELIFECYCLE

如果我 sudo apt-get install libpango1.0-dev 并使用 npm install 重新安装,我可以消除该错误,但我不确定这是否只是一个 hack,我做错了什么更早之前没有安装正确的 npm 版本。

这是完整列表(介于 v0.10.0 - v0.10.40 之间):

  • node v0.10.0 -> npm v1.2.14
  • node v0.10.1 -> npm v1.2.15
  • node v0.10.2 -> npm v1.2.15
  • node v0.10.3 -> npm v1.2.17
  • node v0.10.4 -> npm v1.2.18
  • node v0.10.5 -> npm v1.2.18
  • node v0.10.6 -> npm v1.2.18
  • node v0.10.7 -> npm v1.2.21
  • node v0.10.8 -> npm v1.2.23
  • node v0.10.9 -> npm v1.2.24
  • node v0.10.10 -> npm v1.2.25
  • node v0.10.11 -> npm v1.2.30
  • node v0.10.12 -> npm v1.2.32
  • node v0.10.13 -> npm v1.3.2
  • node v0.10.14 -> npm v1.3.5
  • node v0.10.15 -> npm v1.3.5
  • node v0.10.16 -> npm v1.3.8
  • node v0.10.17 -> npm v1.3.8
  • node v0.10.18 -> npm v1.3.8
  • node v0.10.19 -> npm v1.3.11
  • node v0.10.20 -> npm v1.3.11
  • node v0.10.21 -> npm v1.3.11
  • node v0.10.22 -> npm v1.3.14
  • node v0.10.23 -> npm v1.3.17
  • node v0.10.24 -> npm v1.3.21
  • node v0.10.25 -> npm v1.3.24
  • node v0.10.26 -> npm v1.4.3
  • node v0.10.27 -> npm v1.4.8
  • node v0.10.28 -> npm v1.4.9
  • node v0.10.29 -> npm v1.4.14
  • node v0.10.30 -> npm v1.4.21
  • node v0.10.31 -> npm v1.4.23
  • node v0.10.32 -> npm v1.4.28
  • node v0.10.33 -> npm v1.4.28
  • node v0.10.34 -> npm v1.4.28
  • node v0.10.35 -> npm v1.4.28
  • node v0.10.36 -> npm v1.4.28
  • node v0.10.37 -> npm v1.4.28
  • node v0.10.38 -> npm v1.4.28
  • node v0.10.39 -> npm v1.4.28
  • node v0.10.40 -> npm v1.4.28

不过我建议您使用 n or nvwm。您不必担心其中任何一个的版本。