我刚刚在新的EC2微型实例上安装了nodejs。
我通常安装它,./configure-> make-> sudo make install。
问题: 当我在ec2-user下运行“ node”时,它运行正常。当我运行“ sudo节点”时,它失败。
我发现该节点位于:
[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
然后我尝试编辑根PATH以包含到节点的路径,因此当我以root身份登录时,“ node”会运行-但是当我以ec2-user身份登录并运行“ sudo node”时,它仍然无法使用。
我需要安装npmproperfly。关于如何在运行“ sudo节点”时包括节点路径的任何想法?
是的,这有点烦人,但是您可以通过一些链接来修复它:
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
可能还有更多,但这是到目前为止我所遇到的全部。缺少节点Waf将导致某些npm安装失败,并显示一条相当隐秘的错误消息。
npm