我已经像以前一样正确设置了路径,但收到命令未找到错误。
$echo $PATH
/usr/local/bin/node
因此,我必须在每次运行时使用完整路径来运行节点,并且在不使用 sudo 的情况下运行时,它总是给出“权限被拒绝”的错误:
$sudo /usr/local/bin/node ***
有谁知道问题是什么?
答案1
缩短您的$PATH
从/usr/local/bin/node
到/usr/local/bin
。
该$PATH
变量用于存储包含可执行文件的目录名称;它是不是用于存储可执行文件的任何名称之内那些目录。该file
命令将显示差异:
file /usr/local/bin /usr/local/bin/node
该sudo
问题可能意味着当前用户缺乏运行权限node
。检查权限和所有权:
stat --printf="%a %G:%U\n" /usr/local/bin/node
它应该这样说:
777 root:root
假设没有,但foo
其中有另一个文件usr/local/bin/
每次都可以工作,并且具有正确的权限和所有权。授予node
与以下相同的权限和所有权foo
:
sudo chown --reference=/usr/local/bin/foo /usr/local/bin/node
sudo chmod --reference=/usr/local/bin/foo /usr/local/bin/node