由于与其他包名称冲突,Ubuntu上的NodeJS解释器名称(node)被重命名为NodeJS。这是自述。Debian说:

node .js解释器命令的上游名称是“node”。 在Debian中,解释器命令已更改为"nodejs"。 这样做是为了防止名称空间冲突:使用其他命令 在其上游相同的名称,如ax25-node中的“node” 包中。 作为shell命令调用Node.js的脚本必须改为 使用“nodejs”命令。

然而,使用nodejs会搞砸使用npm安装包的过程。软件包安装失败,报错如下:

Sh: 1: node: not found 此失败可能是由于使用了遗留的二进制"node" 更多解释请阅读/usr/share/doc/nodejs/ readmeDebian

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


当前回答

尝试将node链接到nodejs。首先找出nodejs在哪里

whereis nodejs

然后将节点软链接到nodejs

ln -s [the path of nodejs] /usr/bin/node 

我假设/usr/bin在您的执行路径中。然后你可以在命令行中输入node或npm进行测试,现在一切都可以工作了。

其他回答

我修复了它解除链接/usr/sbin/node(链接到ax25-node包),然后我在命令行上使用这个创建了一个链接到nodejs

sudo ln -s /usr/bin/nodejs /usr/bin/node

因为像karma这样的包不能与nodejs名称一起工作,但是将karma脚本的第一行从node更改为nodejs,但我更喜欢一次性解决这个问题

你也可以使用NVM或Nodejs版本管理器安装Nodejs。使用版本管理器有很多好处。其中之一就是你不必担心这个问题。

产品说明:

sudo apt-get update
sudo apt-get install build-essential libssl-dev

一旦安装了必要的包,就可以从项目的GitHub页面下拉nvm安装脚本。版本号可能不同,但一般情况下,您可以使用以下语法下载并安装它:

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

这将下载脚本并运行它。它将把软件安装到主目录~/.nvm的子目录中。它还将在~/中添加必要的行。配置文件使用的文件。

要访问nvm功能,您需要注销并重新登录,或者您可以源~/。配置文件,以便您的当前会话知道更改:

source ~/.profile

现在你已经安装了nvm,你可以安装独立的Node.js版本。

要找出可用于安装的Node.js版本,您可以键入:

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

如您所见,撰写本文时的最新版本是v0.11.14。你可以通过输入:

nvm install 0.11.14

通常,nvm会切换到使用最新安装的版本。你可以显式地告诉nvm使用我们刚刚下载的版本:

nvm use 0.11.14

当你使用nvm安装node. js时,可执行文件被称为node。你可以通过输入以下命令查看shell当前使用的版本:

node -v

完整的教程可以在这里找到

下面是我使用的另一种方法,因为我喜欢用n来方便在节点版本之间切换。

在一个新的Ubuntu系统上,首先安装“system”节点:

curl -sL https://deb.nodesource.com/setup | sudo bash -

然后全局安装n个模块:

npm install -g n

由于系统节点是先安装的(如上),替代系统可以用来干净地指向n提供的节点。首先确保替代系统没有用于node的东西:

update-alternatives --remove-all node

然后添加n提供的节点:

update-alternatives --install /usr/bin/node node /usr/local/bin/node 1

接下来添加系统提供的节点(使用curl安装的节点):

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 2

现在使用交互菜单选择n提供的节点(从以下命令提供的菜单中选择/usr/local/bin/node):

update-alternatives --config node

最后,由于/usr/local/bin在PATH中的优先级通常高于/usr/bin,如果要使替代系统节点有效,必须创建以下别名(在.bashrc或.zshrc中输入);否则,在/usr/local/bin中安装n的节点总是优先:

alias node='/usr/bin/node'

现在,您可以轻松地在n <所需节点版本号>的节点版本之间进行切换。

卸载您拥有的任何节点版本

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

安装nvm(节点版本管理器)https://github.com/creationix/nvm

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash

现在您可以安装您想要的任何版本的节点,并在版本之间进行切换。

这是您的节点没有正确安装,首先您需要卸载节点,然后重新安装。 要安装节点,这可能会对您有所帮助 http://array151.com/blog/nodejs-tutorial-and-set-up/

之后,您可以轻松地安装包。为了安装软件包,这可能会帮助你

http://array151.com/blog/npm-node-package-manager/