当前位置: 首页 > 面试题库 >

无法在Ubuntu中使用节点软件包管理器安装软件包

韶云瀚
2023-03-14
问题内容

由于与另一个软件包的名称冲突,nodeUbuntu上的NodeJS解释器名称()已重命名为nodejs。这是自述文件。Debian说:

Node.js解释器命令的上游名称是“ node”。在Debian中,解释器命令已更改为“ nodejs”。

这样做是为了防止名称空间冲突:其他命令在上游使用相同的名称,例如“ node”包中的ax25-node。

必须将调用Node.js作为shell命令的脚本更改为使用“ nodejs”命令。

但是,使用nodejs会使用来安装软件包npm。软件包安装失败,并出现以下错误:

sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read

/usr/share/doc/nodejs/README.Debian

如何使npm理解系统上已经安装了nodejs,但解释器名称不同?


问题答案:

TL; DR:

sudo apt-get install nodejs-legacy

首先,让我澄清一下情况。在2012年夏季,Debian维护者决定重命名Node.js可执行文件,以防止某种名称空间与另一个软件包冲突。对于Debian技术委员会来说,这是非常困难的决定,因为它破坏了向后兼容性。

以下是在Debian 邮件列表中发布的委员会决议草案的引文:

  1. 应将nodejs软件包更改为提供/ usr / bin / nodejs,而不是/ usr / bin /
    node。该软件包应该与Debian中任何引用/ usr / bin / node的软件包声明Breaks:关系。

  2. nodejs源软件包还应提供Priority优先级的nodejs-legacy二进制软件包:Extra包含/ usr / bin /
    node作为与/ usr / bin / nodejs的符号链接。归档文件中没有任何软件包可以依赖或推荐nodejs-
    legacy软件包,该软件包仅出于上游
    兼容性而提供。该包声明还应声明与该节点包的Conflicts:关系。

<…>

第2段是OP问题的实际解决方案。OP应该尝试安装此软件包,而不要手动进行符号链接。这是Debian软件包索引网站中此软件包的链接。

可以使用安装sudo apt-get install nodejs-legacy

我还没有找到有关NPM开发人员采用整件事的任何信息,但是我认为npm程序包将在某个时候被固定并nodejs-legacy真正成为遗留物。



 类似资料:
  • 嘿,伙计们,我想我的pip3遇到了麻烦。有人能帮我吗。我运行了以下命令: 它将此作为一个输出:这个输出不仅与tensorflow软件包有关,而且与我尝试用pip3安装的任何软件包有关。 编辑的原因是什么:pip工作正常,但pip3不工作

  • 问题内容: 我在Docker上安装了Ubuntu 14.04映像。之后,当我尝试在ubuntu映像中安装软件包时,我无法找到软件包错误: 如何解决这个错误? 问题答案: 这是因为映像中没有包缓存,因此需要运行: 在安装软件包之前,并且如果您的命令在Dockerfile中,则需要: 要取消命令的标准输出,请使用。例如

  • 问题内容: 我在Ubuntu 16.04 LTS上安装了pycharm社区版(最新的稳定版本),我无法通过pycharm安装软件包,之前已经可以安装它们。我可以通过pip安装软件包,但想解决此问题。 用谷歌搜索了这个问题,但是找不到任何修复,我有一台Windows机器,它没有遇到同样的问题。 问题答案: 我有解决方案,我转至https://youtrack.jetbrains.com/issue/

  • 本文向大家介绍Docker 安装Debian / Ubuntu软件包,包括了Docker 安装Debian / Ubuntu软件包的使用技巧和注意事项,需要的朋友参考一下 示例 在单个运行命令上运行安装以合并更新和安装。如果以后添加更多软件包,它将再次运行更新并安装所有需要的软件包。如果更新是单独运行的,它将被缓存,并且软件包安装可能会失败。脚本安装需要将前端设置为非交互式,并传递-y来安装。在安

  • 我很困惑。我已经做了十几次这个过程,从来没有遇到过这个问题。 我为乌班图安装了最新版本的R 我输入R,没有任何问题,给我最新的版本,我可以加载原生包。 但当我尝试安装新的软件包时,它们会下载,但我什么也没得到。例如,如果我安装ggplot2: 我已经彻底清除了很多次文件,但运气都不好。 我以 root 用户身份登录。 我觉得我遗漏了什么明显的东西?我不知道——我在Ubuntu、Mac、Window