1. ホーム
  2. node.js

[解決済み] EC2でsudoのノードコマンドが見つからないが、sudoなしのノードならOK

2022-07-28 20:09:07

質問

私はちょうど新しいEC2マイクロインスタンスにnodejsをインストールしました。

./configure -> make -> sudo make installと、普通にインストールしました。

問題が発生しました。 ec2-userで"node"を実行すると、完璧に実行されます。sudo node"を実行すると、失敗します。

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のPATHを編集してnodeへのパスを含めるようにして、rootとしてログインしているときに"node"が実行されるようにしようとしましたが、ec2-userとしてログインして"sudo node"を実行するとまだ動きません。

npm properflyをインストールするためにこれが必要です。"sudo node"を実行中にノード パスを含める方法について何か考えがありますか?

どのように解決するのですか?

少し面倒ですが、リンクを貼ることで解決できます。

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

他にもあるかもしれませんが、私が今までに遭遇したのはこれだけです。ノードワフがないため、いくつかの npm のインストールに失敗し、かなり不可解なエラーメッセージが表示されます。