【问题标题】:Error on "update-alternatives" when installing/upgrading nodejs v0.10.30安装/升级 nodejs v0.10.30 时出现“update-alternatives”错误
【发布时间】:2014-08-02 11:52:33
【问题描述】:

所以我在进行 apt-get upgrade 时收到此错误

Setting up nodejs (0.10.30-1chl1~trusty1) ...
update-alternatives: error: alternative link /usr/bin/node is already managed by nodejs
dpkg: error processing package nodejs (--configure): subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing: nodejs
E: Sub-process /usr/bin/dpkg returned an error code (1)

注意:“nodejs --version”有效,我得到一个干净的“v0.10.30”,但“node --version”没有,因为没有链接。

到目前为止,我已经尝试过:

  • 完全删除 nodejs 并重新安装
  • 我在删除 nodejs 后手动删除了指向 nodejs 的链接 /usr/bin/node,因为它仍然存在并且问题与 update-alternatives 相关
  • 使用“update-alternatives --config nodesjs”(我第一次使用时,有些东西坏了并修复了,但并没有解决问题。此后该错误不再出现)。

【问题讨论】:

  • apt-cache policy nodejs 的输出是什么?
  • 你是用this PPA安装node还是?
  • @mscdex:是的,我正在使用 Chris Lea 的 PPA。
  • @Salem: "apt-cache policy nodejs" 给出了这个 nodejs: 已安装: (none) 候选: 0.10.30-1chl1~trusty1 版本表: 0.10.30-1chl1~trusty1 0 500 @987654322 @ amd64 包 0.10.25~dfsg2-2ubuntu1 0 500 ubuntu.securedservers.com trusty/universe amd64 包

标签: node.js installation upgrade ubuntu-14.04


【解决方案1】:

其他答案没有解决我的设置问题,可能是因为我使用的是NodeSource 存储库而不是官方存储库。

但我只是先删除了 nodejs 组的所有“替代品”:

sudo update-alternatives --remove-all nodejs

然后,sudo apt-get install nodejs 就可以工作了。

【讨论】:

    【解决方案2】:

    我真的鼓励你使用 nvm 在你的 ubuntu 机器上安装 Node.js (https://github.com/creationix/nvm)。有了它,任何 Node.js 版本的安装都变得非常容易。

    【讨论】:

    • 谢谢@jsebfranck!它工作得很好......当我让 nvm 工作时(这花了我一段时间)。所以现在我的节点 v0.10.30 正在工作。但是,我想这仍然是一种“解决方法”而不是“解决方案”,即使 nvm 似乎是一个很棒的工具并且我打算从现在开始使用它。
    【解决方案3】:

    可能您安装了旧版本的 NodeJS,并且在升级时遇到了冲突。

    使用/usr/bin/node 的唯一包是nodejs-legacy,因此除非您自己创建了该链接或从源安装NodeJS,否则您需要删除该包:

    $ sudo apt-get purge nodejs-legacy nodejs
    

    之后只需重新安装 NodeJS,更新和升级您的软件:

    $ sudo apt-get install nodejs
    $ sudo apt-get update && sudo apt-get upgrade
    

    从您给 PPA 的 NodeJS 版本的输出看,它的优先级高于另一个,所以安装它应该没有任何问题。

    【讨论】:

    • 默认 repo 中的 Nodejs 版本也安装了很多包,所以最后你可能想运行 apt-get autoremove 来摆脱它们。
    • 再次感谢@Salem 的关注。看来“清除”并没有删除任何东西。但是,然后我按照您告诉我的方式安装和升级,并且它没有出现故障。既然你提到了它,我很可能创建了那个链接:我不确定(那是几周前的事了),但它确实敲响了警钟。但事实是我在错误发生后手动删除了链接并没有解决问题......所以也许通过nvm安装以某种方式解决了问题。
    • sudo apt-get upgrade nono
    猜你喜欢
    • 1970-01-01
    • 2015-08-10
    • 2021-12-06
    • 2019-07-17
    • 1970-01-01
    • 2012-02-19
    • 2015-01-15
    • 2014-01-27
    • 2020-01-28
    相关资源
    最近更新 更多