我试图在Ubuntu 12.10 (Quantal Quetzal)上安装Node.js,但终端显示关于丢失包的错误。我试过这样做:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm

但是当我来到最后一行sudo apt-get install nodejs npm显示这个错误:

Failed to install some packages. This may mean that
you requested an impossible situation or if you are using the distribution
distribution that some required packages have not yet been created or been
been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
nodejs: Conflicts: npm
E: Failed to correct problems, you have held broken packages.

然后我卸载了ppa:chris-lea/node.js,我正在尝试第二种选择:

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

同样的错误,终端说npm是最新版本,但它也显示了我在顶部显示的文本。我认为问题是ppa:chris-lea/node.js,但我不知道如何解决它。


当前回答

在Ubuntu 12.10 (Quantal Quetzal)或Ubuntu 14.04 LTS (Trusty Tahr)或Ubuntu 16.04.1 LTS (Xenial Xerus)上安装Node.js。

请避免在Ubuntu上使用apt-get安装Node.js。如果你已经安装了带有内置包管理器的Node.js,请删除它。(sudo apt-get purge nodejs && sudo apt-get autoremove && sudo apt-get autoclean)

Linux操作系统的安装过程与OS X操作系统相同。 使用提供的脚本:

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash

$ nvm list
$ nvm ls-remote
$ nvm install 6.4.0
$ nvm use 6.4.0
$ nvm alias default 6.4.0
$ node -v
$ npm install -g npm
$ npm -v

安装Node JS时的其他问题

不要使用sudo apt-get install nodejs npm。始终使用sudo apt-get install nodejs

如果你得到错误sudo: add-apt-repository:命令没有找到,只需在上面的第二个命令之前运行这个命令:sudo apt-get install software-properties-common

如果未找到sudo: add-apt-repository:命令,需要在添加存储库前执行sudo apt-get install python-software-properties命令

如果你之前使用的是旧版本,或者控制台中没有node / NPM,请尝试使用bash -r

链接说明已更新为curl - sl https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs


编辑更新

对于最新版本,您也可以使用URL nodejs.org/dist/node-latest.tar.gz

还有一件事!不要忘记运行以下命令,该命令将增加inotify监视的数量。

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

其他回答

可以使用nvm安装Node.js。它允许您使用不同的版本而没有冲突。

我的apt-get又旧又坏,所以我不得不从源代码安装。以下是对我有效的方法:

# Get the latest version from nodejs.org. At the time of this writing, it was 0.10.24
curl -o ~/node.tar.gz http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
cd
tar -zxvf node.tar.gz
cd node-v0.6.18
./configure && make && sudo make install

这些步骤主要来自joyent的安装wiki。

Sudo apt安装nodejs 必须安装NPM curl - sl https://deb.nodesource.com/setup_14.x | sudo - e bash - . Sudo apt-get install -y nodejs

这是轻松安装Node.js的最佳方式。这也适用于Ubuntu 12.04 (Precise穿山甲),Ubuntu 13.04 (Raring Ringtail)和Ubuntu 14.04 (Trusty Tahr)。

添加Node.js存储库

[sudo] apt-get install python-software-properties
[sudo] apt-add-repository ppa:chris-lea/node.js
[sudo] apt-get update

node . js安装

[sudo] apt-get install nodejs

现在检查Node.js版本

node -v

输出

v0.10.20

这个命令应该安装npm

npm install

检查npm版本

npm -v

输出

1.4.3

如果出于某种原因,如果你看到npm没有安装,你可以尝试运行:

[sudo] apt-get install npm

要更新npm,您可以尝试运行:

[sudo] npm install -g npm

在Ubuntu 12.10 (Quantal Quetzal)或Ubuntu 14.04 LTS (Trusty Tahr)或Ubuntu 16.04.1 LTS (Xenial Xerus)上安装Node.js。

请避免在Ubuntu上使用apt-get安装Node.js。如果你已经安装了带有内置包管理器的Node.js,请删除它。(sudo apt-get purge nodejs && sudo apt-get autoremove && sudo apt-get autoclean)

Linux操作系统的安装过程与OS X操作系统相同。 使用提供的脚本:

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash

$ nvm list
$ nvm ls-remote
$ nvm install 6.4.0
$ nvm use 6.4.0
$ nvm alias default 6.4.0
$ node -v
$ npm install -g npm
$ npm -v

安装Node JS时的其他问题

不要使用sudo apt-get install nodejs npm。始终使用sudo apt-get install nodejs

如果你得到错误sudo: add-apt-repository:命令没有找到,只需在上面的第二个命令之前运行这个命令:sudo apt-get install software-properties-common

如果未找到sudo: add-apt-repository:命令,需要在添加存储库前执行sudo apt-get install python-software-properties命令

如果你之前使用的是旧版本,或者控制台中没有node / NPM,请尝试使用bash -r

链接说明已更新为curl - sl https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs


编辑更新

对于最新版本,您也可以使用URL nodejs.org/dist/node-latest.tar.gz

还有一件事!不要忘记运行以下命令,该命令将增加inotify监视的数量。

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p