由于与其他包名称冲突,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已经安装在系统上,但解释器名称不同?


当前回答

在Linux Mint 17上,我尝试了两种解决方案(创建符号链接或使用nodejs-legacy包)都没有成功。

唯一对我有用的是使用Chris Lea的ppa:

sudo apt-get purge node-*
sudo apt-get autoremove 
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

此安装的节点版本为10.37和npm 1.4.28。在那之后,我可以在全球范围内安装包。

其他回答

正如其他人已经提到的,我建议不要使用“sudo apt-get”来安装node或任何开发库。您可以从https://nodejs.org/dist/v6.9.2/下载所需的版本并设置自己的环境。

我会推荐像nvm和n这样的工具来管理你的节点版本。切换和使用这些模块非常方便。 https://github.com/creationix/nvm https://github.com/tj/n

或者写基本bash下载zip/tar,解压移动文件夹并创建软链接。当你需要更新时,只需将旧的软链接指向新的下载版本。 就像我为自己创建的一样,你可以参考: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh

#Go to home
cd ~
#run command
#New Script
wget https://raw.githubusercontent.com/deepakshrma/NodeJs-4.0-Reference-Guide/master/nodejs-installer.sh 
bash nodejs-installer.sh -v lts
#here -v or --version can be sepecific to 0.10.37 or it could be latest/lts 
#Examples
bash nodejs-installer.sh -v lts
bash nodejs-installer.sh -v latest
bash nodejs-installer.sh -v 4.4.2

对我来说,问题是这样解决的,

sudo apt-get remove node
sudo apt-get remove nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
alias node=nodejs
rm -r /usr/local/lib/python2.7/dist-packages/localstack/node_modules
npm install -g npm@latest || sudo npm install -g npm@latest

你也可以使用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

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

可以在/usr/bin中创建link ln -s nodejs节点 希望这能解决你的问题。

对我来说,修复是删除node*包和npm包。

然后重新安装如下:

sudo apt-get install autoclean
sudo apt-get install nodejs-legacy
npm install