【问题标题】:What version of npm works with nodejs 0.10?哪个版本的 npm 适用于 nodejs 0.10?
【发布时间】:2015-12-04 09:56:35
【问题描述】:

我正在尝试按照说明安装 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 版本。

【问题讨论】:

    标签: node.js npm apt-get cartodb


    【解决方案1】:

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

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

    我建议你使用nnvwm。您不必担心其中任何一个的版本。

    【讨论】:

    • 非常感谢您的回答!我也想知道......你从哪里得到这个列表?
    • 哈哈,我期待这个。首先,我浏览了发行说明,但花费的时间比我想象的要多。所以,我简单地安装了所有 node.js 版本并检查了它们的 npm 版本。并使用n rm 0.10.* 命令删除了所有node.js 版本。
    • @GökayGürcan 你知道任何官方来源,我们可以在 2 年多后绘制这个依赖关系图吗?谢谢。我之所以这么问,是因为虽然 n 是一款非常适合开发工作的工具,但在持续集成方面,人们希望锁定版本以减少意外并提供更多可重复的构建。
    • 这是一个将节点版本映射到 npm 版本的表。 nodejs.org/en/download/releases
    猜你喜欢
    • 2012-02-17
    • 2010-11-30
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多