E: 无法定位包 npm

当我尝试用 sudo apt-get install npm安装 npm 时,出现了以下错误:

E: 无法定位包 npm

为什么不能找到 npm? 我正在使用 Debian 9并且已经运行了

sudo apt-get install nodejs
182236 次浏览

If you have installed nodejs, then you also have npm. Npm comes with node.

我在 Debian 9.2上遇到了同样的问题,这就是我克服它的方法。

安装

sudo apt install curl
curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get install -y npm

检查已安装的版本

node --version
npm --version

最初来源于“如何在 Debian 9上安装 Node.js LTS” Http://linuxbsdos.com/2017/06/26/how-to-install-node-js-lts-on-debian-9-stretch/

From the official Node.js documentation:

一个 Node.js 包也可以在 Debian Sid (不稳定)、 Jessie (测试)和 Wheezy (Wheezy-backports)的官方回购中作为“ nodejs”使用。它只安装 nodejs 二进制文件。

So, if you only type sudo apt-get install nodejs , it does not install other goodies such as npm.

你需要输入:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

可选项: 安装构建工具

要从 npm 编译和安装本地附加组件,您可能还需要安装构建工具:

sudo apt-get install -y build-essential

更多信息: 医生 NodeJ

This will resolve your error. Run these commands in your terminal. These commands will add the older versions. You can update them later or you can change version here too before running these commands one by one.

sudo apt-get install build-essential
wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
tar -xzf node-v0.8.16.tar.gz
cd node-v0.8.16/
./configure
make
sudo make install

您的系统无法找到 npm 包,因为您还没有将 nodejs 存储库添加到系统中。

请按照以下安装步骤进行操作:
将 nodejs PPA 存储库添加到我们的系统和 python 软件属性中

sudo apt-get install curl python-software-properties
// sudo apt-get install curl software-properties-common


curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
sudo apt-get update

然后安装 npm

sudo apt-get install nodejs

检查 npm 和 node 是否已经安装,然后就可以使用 node.js 了

node -v
npm -v

If someone was failed to install nodejs.. Try remove the npm first, 也许旧的设备坏了。

sudo apt-get remove nodejs
sudo apt-get remove npm

检查 npm 或节点文件夹是否仍然存在,如果找到它们,请删除它们

which node
which npm

在 Ubuntu for Windows 中遇到这个问题,试着先运行

sudo apt-get update
sudo apt-get upgrade

那么

sudo apt-get install npm

用以下方法下载存储库密钥:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

然后设置存储库:

sudo sh -c "echo deb https://deb.nodesource.com/node_8.x cosmic main \
> /etc/apt/sources.list.d/nodesource.list"
sudo apt-get update
sudo apt-get install nodejs

对于 Debian Stretch (Debian 版本9) ,nodejs不包含 npm,要将其作为一个单独的软件包安装,必须启用 stretch-backports

echo 'deb http://deb.debian.org/debian stretch-backports main' |
sudo tee /etc/apt/sources.list.d/stretch-backports.list
apt-get update -y
apt-get -t stretch-backports install -y npm

在 Buster (Debian10)中,npm是一个普通的软件包,所以以后,这个应该可以正常工作。但是在未来的一段时间里,我们中的一些人仍将部分困在弹力箱上。

在我的 jenkins/jenkins docker sudo 总是产生错误:

bash: sudo: command not found

我需要更新回购清单:

curl -sL https://deb.nodesource.com/setup_10.x | apt-get update

那么,

 apt-get install nodejs

所有命令行的结果如下:

root@76e6f92724d1:/# curl -sL https://deb.nodesource.com/setup_10.x | apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Get:3 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB]
Get:4 http://deb.debian.org/debian stretch Release [118 kB]
Get:5 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [520 kB]
Get:6 http://deb.debian.org/debian stretch-updates/main amd64 Packages [27.9 kB]
Get:8 http://deb.debian.org/debian stretch Release.gpg [2410 B]
Get:9 http://deb.debian.org/debian stretch/main amd64 Packages [7083 kB]
Get:7 https://packagecloud.io/github/git-lfs/debian stretch InRelease [23.2 kB]
Get:10 https://packagecloud.io/github/git-lfs/debian stretch/main amd64 Packages [4675 B]
Fetched 7965 kB in 20s (393 kB/s)
Reading package lists... Done
root@76e6f92724d1:/#  apt-get install nodejs
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libicu57 libuv1
The following NEW packages will be installed:
libicu57 libuv1 nodejs
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 11.2 MB of archives.
After this operation, 45.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stretch/main amd64 libicu57 amd64 57.1-6+deb9u3 [7705 kB]
Get:2 http://deb.debian.org/debian stretch/main amd64 libuv1 amd64 1.9.1-3 [84.4 kB]
Get:3 http://deb.debian.org/debian stretch/main amd64 nodejs amd64 4.8.2~dfsg-1 [3440 kB]
Fetched 11.2 MB in 26s (418 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libicu57:amd64.
(Reading database ... 12488 files and directories currently installed.)
Preparing to unpack .../libicu57_57.1-6+deb9u3_amd64.deb ...
Unpacking libicu57:amd64 (57.1-6+deb9u3) ...
Selecting previously unselected package libuv1:amd64.
Preparing to unpack .../libuv1_1.9.1-3_amd64.deb ...
Unpacking libuv1:amd64 (1.9.1-3) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_4.8.2~dfsg-1_amd64.deb ...
Unpacking nodejs (4.8.2~dfsg-1) ...
Setting up libuv1:amd64 (1.9.1-3) ...
Setting up libicu57:amd64 (57.1-6+deb9u3) ...
Processing triggers for libc-bin (2.24-11+deb9u4) ...
Setting up nodejs (4.8.2~dfsg-1) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

我也有过类似的问题,这对我很有效。

Add the NodeSource package signing key:

curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
# wget can also be used:
# wget --quiet -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

添加所需的 NodeSource 存储库:

# Replace with the branch of Node.js or io.js you want to install: node_6.x, node_12.x, etc...
VERSION=node_12.x
# The below command will set this correctly, but if lsb_release isn't available, you can set it manually:
# - For Debian distributions: jessie, sid, etc...
# - For Ubuntu distributions: xenial, bionic, etc...
# - For Debian or Ubuntu derived distributions your best option is to use the codename corresponding to the upstream release your distribution is based off. This is an advanced scenario and unsupported if your distribution is not listed as supported per earlier in this README.
DISTRO="$(lsb_release -s -c)"
echo "deb https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list
echo "deb-src https://deb.nodesource.com/$VERSION $DISTRO main" | sudo tee -a /etc/apt/sources.list.d/nodesource.list

更新软件包列表并安装 Node.js:

sudo apt-get update
sudo apt-get install nodejs