安装Node.js时候发现安装npm报错误:npm : 依赖: node-gyp (>= 0.10.9) 但是它将不会被安装

下面贴上我的解决方法:

具体表现如下

yelvlab@yelvlab-Latitude-E6440:~/node-git$ sudo apt install npm
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 npm : 依赖: node-gyp (>= 0.10.9) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

发现依赖关系中node-gyp存在问题,但是直接安装并不能解决问题,然后经过别人提醒,有了一个解决思路,卸载掉所有关于node.js的包与依赖。然后执行如下:

$ sudo apt-get autoremove node*
$ sudo apt-get install nodejs
$ sudo apt-get install nodejs-legacy
$ sudo apt-get install npm

下面是实际执行解决,从据结果分析应该是libuv1这个包出现了问题。

问题原因(分析结果):没有添加chris/node.js的ppa源。
问题过程:在没有添加ppa源的情况下,直接安装了nodejs(sudo apt install nodejs)导致安装了依赖存在问题的node.js,以至于后面的npm无法顺利安装。



yelvlab@yelvlab-Latitude-E6440:~/node-git$ sudo apt-get autoremove node*
下列软件包将被【卸载】:
  libuv1 nodejs nodejs-legacy
升级了 0 个软件包,新安装了 0 个软件包,要卸载 3 个软件包,有 218 个软件包未被升级。
解压缩后将会空出 13.5 MB 的空间。
您希望继续执行吗? [Y/n] 
(正在读取数据库 ... 系统当前共安装有 231734 个文件和目录。)
正在卸载 nodejs-legacy (4.2.6~dfsg-1ubuntu4) ...
正在卸载 nodejs (4.2.6~dfsg-1ubuntu4) ...
正在卸载 libuv1:amd64 (1.8.0-1) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在处理用于 doc-base (0.10.7) 的触发器 ...
Processing 1 removed doc-base file...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
yelvlab@yelvlab-Latitude-E6440:~/node-git$ sudo apt-get install nodejs
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  libuv1
下列【新】软件包将被安装:
  libuv1 nodejs
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。
需要下载 3,161 kB/3,218 kB 的归档。
解压缩后会消耗 13.4 MB 的额外空间。
您希望继续执行吗? [Y/n] 
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/universe amd64 nodejs amd64 4.2.6~dfsg-1ubuntu4.1 [3,161 kB]                  
已下载 3,161 kB,耗时 39秒 (80.4 kB/s)                                                                                                          
正在选中未选择的软件包 libuv1:amd64。
(正在读取数据库 ... 系统当前共安装有 231667 个文件和目录。)
正准备解包 .../libuv1_1.8.0-1_amd64.deb  ...
正在解包 libuv1:amd64 (1.8.0-1) ...
正在选中未选择的软件包 nodejs。
正准备解包 .../nodejs_4.2.6~dfsg-1ubuntu4.1_amd64.deb  ...
正在解包 nodejs (4.2.6~dfsg-1ubuntu4.1) ...
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
正在处理用于 doc-base (0.10.7) 的触发器 ...
Processing 1 added doc-base file...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 libuv1:amd64 (1.8.0-1) ...
正在设置 nodejs (4.2.6~dfsg-1ubuntu4.1) ...
update-alternatives: 使用 /usr/bin/nodejs 来在自动模式中提供 /usr/bin/js (js)
正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
yelvlab@yelvlab-Latitude-E6440:~/node-git$ sudo apt-get install nodejs-legacy
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  nodejs-legacy
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 218 个软件包未被升级。
需要下载 27.7 kB 的归档。
解压缩后会消耗 81.9 kB 的额外空间。
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/universe amd64 nodejs-legacy all 4.2.6~dfsg-1ubuntu4.1 [27.7 kB]
已下载 27.7 kB,耗时 0秒 (35.5 kB/s)     
正在选中未选择的软件包 nodejs-legacy。
(正在读取数据库 ... 系统当前共安装有 231729 个文件和目录。)
正准备解包 .../nodejs-legacy_4.2.6~dfsg-1ubuntu4.1_all.deb  ...
正在解包 nodejs-legacy (4.2.6~dfsg-1ubuntu4.1) ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 nodejs-legacy (4.2.6~dfsg-1ubuntu4.1) ...
yelvlab@yelvlab-Latitude-E6440:~/node-git$ sudo apt-get install npm
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  gyp javascript-common libjs-inherits libjs-jquery libjs-node-uuid libjs-underscore libssl-dev libssl-doc libssl1.0.0 libuv1-dev node-abbrev
  node-ansi node-ansi-color-table node-archy node-async node-block-stream node-combined-stream node-cookie-jar node-delayed-stream
  node-forever-agent node-form-data node-fstream node-fstream-ignore node-github-url-from-git node-glob node-graceful-fs node-gyp node-inherits
  node-ini node-json-stringify-safe node-lockfile node-lru-cache node-mime node-minimatch node-mkdirp node-mute-stream node-node-uuid node-nopt
  node-normalize-package-data node-npmlog node-once node-osenv node-qs node-read node-read-package-json node-request node-retry node-rimraf
  node-semver node-sha node-sigmund node-slide node-tar node-tunnel-agent node-underscore node-which nodejs-dev zlib1g-dev
建议安装:
  node-hawk node-aws-sign node-oauth-sign node-http-signature debhelper
下列【新】软件包将被安装:
  gyp javascript-common libjs-inherits libjs-jquery libjs-node-uuid libjs-underscore libssl-dev libssl-doc libuv1-dev node-abbrev node-ansi
  node-ansi-color-table node-archy node-async node-block-stream node-combined-stream node-cookie-jar node-delayed-stream node-forever-agent
  node-form-data node-fstream node-fstream-ignore node-github-url-from-git node-glob node-graceful-fs node-gyp node-inherits node-ini
  node-json-stringify-safe node-lockfile node-lru-cache node-mime node-minimatch node-mkdirp node-mute-stream node-node-uuid node-nopt
  node-normalize-package-data node-npmlog node-once node-osenv node-qs node-read node-read-package-json node-request node-retry node-rimraf
  node-semver node-sha node-sigmund node-slide node-tar node-tunnel-agent node-underscore node-which nodejs-dev npm zlib1g-dev
下列软件包将被升级:
  libssl1.0.0
升级了 1 个软件包,新安装了 58 个软件包,要卸载 0 个软件包,有 217 个软件包未被升级。
需要下载 6,428 kB 的归档。
解压缩后会消耗 27.4 MB 的额外空间。
您希望继续执行吗? [Y/n] 

最后修改:2018 年 08 月 08 日
如果觉得我的文章对你有用,请随意赞赏