我刚刚在Ubuntu 22.04上通过snap安装了node,使用以下命令,按照GitHub页面说明:
# snap install node --classic
字符串
之后,node和npm都成功报告了它们的版本。
# node --version
v18.16.0
# npm --version
9.5.1
型
但是,一旦我退出root,只有node作为非特权用户对我可用:
$ node --version
v18.16.0
$ npm --version
-bash: /usr/bin/npm: No such file or directory
型
这是预期的行为吗?如何让npm普遍可用?
以下是/snap/bin的内容:
$ ls -l /snap/bin
total 0
lrwxrwxrwx 1 root root 13 Jun 1 04:51 amazon-ssm-agent.ssm-cli -> /usr/bin/snap
lrwxrwxrwx 1 root root 7 Jun 1 04:51 lxc -> lxd.lxc
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.benchmark -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.buginfo -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.check-kernel -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.lxc -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.lxc-to-lxd -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 04:51 lxd.migrate -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 11:52 node -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 11:52 node.npm -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 11:52 node.npx -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 11:52 node.yarn -> /usr/bin/snap
lrwxrwxrwx 1 root root 13 Jun 1 11:52 node.yarnpkg -> /usr/bin/snap
lrwxrwxrwx 1 root root 8 Jun 1 11:52 npm -> node.npm
lrwxrwxrwx 1 root root 8 Jun 1 11:52 npx -> node.npx
lrwxrwxrwx 1 root root 24 Jun 1 04:51 ssm-cli -> amazon-ssm-agent.ssm-cli
lrwxrwxrwx 1 root root 9 Jun 1 11:52 yarn -> node.yarn
lrwxrwxrwx 1 root root 12 Jun 1 11:52 yarnpkg -> node.yarnpkg
型
请注意,nodejs
和npm
软件包以前安装过,但在尝试使用snap之前通过apt
删除了。也许是一些宿醉导致了这个问题?
1条答案
按热度按时间huwehgph1#
我也有同样的问题。
TL;DR:我删除了node snap包(也删除了npm snap包)并安装了
nvm
,然后是nvm install node
。一切都像一个魅力。要进入细节,我认为它也将工作,以改变路径,但我不确定这是一个建议的方式来解决这个问题。nvm安装过程非常简单。