Bash에서 경로를 올바르게 설정한 후 명령을 찾을 수 없습니다.

Bash에서 경로를 올바르게 설정한 후 명령을 찾을 수 없습니다.

이전과 같이 경로를 올바르게 설정했지만 명령을 찾을 수 없다는 오류가 발생합니다.

$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/부여합니다 .nodefoo

sudo chown --reference=/usr/local/bin/foo /usr/local/bin/node
sudo chmod --reference=/usr/local/bin/foo /usr/local/bin/node

관련 정보