npm 安装在 Debian Stretch 下无法运行

npm 安装在 Debian Stretch 下无法运行

我只是尝试在 Debian Stretch 上node安装。npm我按照描述安装了节点这里

安装后nodejs-legacy,我的node命令也可以工作,但npm仍然找不到命令。

因此,我尝试通过手动安装它apt-get install npm,但它只是告诉我找不到该包。接下来我尝试了“Fancy Install (Unix)”npm 存储库失败了

    install npm@latest
fetching: https://registry.npmjs.org/npm/-/npm-5.5.1.tgz
module.js:327
    throw err;
    ^

Error: Cannot find module '/tmp/npm.1272/package/bin/read-package-json.js'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Function.Module.runMain (module.js:441:10)
    at startup (node.js:140:18)
    at node.js:1043:3
added 1 package and removed 1 package in 0.45s
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
/usr/bin/npx -> /usr/lib/node_modules/npm/bin/npx-cli.js
+ [email protected]
updated 1 package in 1.21s
It worked

尽管它为命令创建了链接,但npm链接已损坏。有人知道我怎样才能npm跑步吗?

另一件事:我的 resources.list 中有 Visual Studio 代码存储库,它也使用节点。这是否可能是我下载一个没有 npm 的节点包的原因apt-get install -y nodejs

预先感谢您的每一个答案。

答案1

看起来好像是应该可以在npm包装中找到,但是有一个问题

Error: Package not available in this suite

我在某处读到它故意不可用,因为有很多突出的安全问题(对于打包版本)。我解决了我的问题,没有任何“sudo 从互联网运行此脚本”解决方案,如下所示:

cd /tmp/
wget  https://deb.nodesource.com/setup_8.x
view  setup_8.x
echo 'deb https://deb.nodesource.com/node_8.x  stretch  main' > /etc/apt/sources.list.d/nodesource.list
wget -qO - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
apt update
apt install  nodejs

npm作为该包的一部分安装nodejs

答案2

我不知道为什么我上面的尝试不起作用,但对我来说安装nvm就像描述的那样这里然后表演nvm install node就完美了。

答案3

read-package-json.js我通过使用最新的安装脚本解决了有关缺失的错误https://raw.githubusercontent.com/npm/npm/latest/scripts/install.sh。 (来源:https://github.com/npm/npm/issues/18524#issuecomment-385369514)。

之后您可能会遇到有关丢失的错误rimraf。至少为此有一个 Debian Stretch 包:apt install node-rimraf。有关替代方案,请参阅https://github.com/npm/npm/issues/18524https://github.com/npm/npm/issues/19105

make最后,如果您尚未安装该软件,您可能会遇到有关缺失的错误,因此apt install make.

相关内容