小编典典

在 EC2 上:找不到 sudo 节点命令,但没有 sudo 的节点可以

all

我刚刚在一个新的 EC2 微型实例上安装了 nodejs。

我正常安装了,./configure -> make -> sudo make install。

问题:当我在 ec2-user 下运行“node”时,它运行良好。当我运行“sudo node”时,它失败了。

我发现该节点位于:

[ec2-user@XXXX ~]$ whereis node
node: /usr/local/bin/node /usr/local/lib/node

当前路径是

[ec2-user@XXXX ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin

但是,sudo 路径是

[root@ip-10-112-222-32 ~]# echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

然后我尝试编辑根路径以包含节点的路径,因此当我以 root 身份登录时“节点”运行 - 但当我以 ec2-user 身份登录并运行“sudo node”时它仍然无法工作.

我需要这个来正确安装 npm。关于在运行“sudo node”时如何包含节点路径的任何想法?


阅读 92

收藏
2022-04-18

共1个答案

小编典典

是的,这有点烦人,但您可以通过一些链接修复它:

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

可能还有更多,但这就是我到目前为止所遇到的全部。缺少 node-waf 会导致某些npm安装失败并显示相当神秘的错误消息。

2022-04-18