如何在Alpine Linux中安装npm


66

因此,我无法在高山linux中安装npm。我以为也许我可以做一个,apk add npm但是apk search npm即使返回,也显然什么也没返回apk update。我正在尝试从nginx:alpine docker镜像中进行所有操作,即docker run -it nginx:alpine /bin/sh

编辑1:我可以看到nodejs:alpine dockerfile的构建方式node,但我不知道它是如何构建的npm

编辑2:现在我知道npm已在alpine上与nodejs一起安装,并且为了澄清起见,起初对我而言不明显的原因是,在ubuntu 14.04上sudo apt-get install nodejs仍然需要a sudo apt-get install npm(它安装了开发软件包,例如gcc

Answers:


28

对于最新版本的Alpine(v3.8 +),使用npm安装nodejs的正确方法是:

apk add --update nodejs npm

但是,npm包取决于nodejs,因此您可以执行以下操作:

apk add --update npm

注意:从Alpine 3.8开始,没有nodejs-npm软件包。


1
现在应该是公认的答案
Omar S.

173

我对apk经理有问题。

软件包nodejs不再安装NPM(请参阅pkgs.alpinelinux.org)您必须安装nodejs-npm

apk add --update nodejs nodejs-npm

我不明白。Npm应该是节点的核心依赖项,npm install npm @ latest可能会受到节点版本本身的影响,因此它们将不兼容...
dmi3y

4
这应该是最新的高山图像的公认答案。npm并不是仅通过nodejs为我安装的
kevinc

同意,这通常是一个依赖项,但是如果您手动安装nodejs(我也从'edge'存储库中安装它,因为从6.7开始不推荐使用),则需要单独安装nodejs-npm,这就是我运行的:apk添加nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-cache --repository dl-cdn.alpinelinux.org/alpine/edge/main --allow-untrusted
Anton Babushkin

5
附带问题:虽然这个答案很好用,但似乎nodejs-npmpkgs.alpinelinux.org/packages找不到。有npm包装也可以做。是某种别名吗?
塔德·利斯皮

29

我可能是错的,但我认为npm实际上是的依赖项nodejs

我从未见过npm单独安装过任何软件包管理器。似乎总是与yum install nodejsapt-get install nodejs或打包在一起apk add --update nodejs


1
欢迎来到超级用户。我不知道您是否正确,只是一些快速反馈。答案旨在作为最终解决方案。有了更多代表,您可以发表有帮助的猜测发表评论。对于答案帖,请先对其进行研究,以便您确定信息后再发表。然后,您可以引用参考,这将提供更好的答案。
fixer1234'2013/

16
这不再被接受,因为在安装nodejs时,apk默认不会安装npm
Panthro

仅仅因为没人能提供更好的答案而投票支持
Alexander Mills

1
我认为它是Alpine 3.6+的“ apk add --update nodejs-npm”
Ali Cheaito


4

这里的问题是最近的一个,这是由于Alpine的软件包存储库在v3.5和v3.6或edge之间发生了变化。

在v3.5中nodejs包含npm在v3.6 nodesjs中不包含npm,并且nodejs-npm存在新软件包。

请参阅此处了解高山套餐。要查看您要提取的软件包的版本,请查看其中的内容/etc/apk/repositories



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.