나는 설치했다exa
설치 후 지침에 따라 내 파일 cargo
에 경로를 추가했습니다 .~/.bashrc
PATH=/root/.cargo/bin:$PATH
/root/.cargo/bin
경고: 설치된 바이너리를 실행할 수 있으려면 PATH에 추가해야 합니다 .
그럼에도 불구하고 달리려고 exa
하면
Command 'exa' not found, did you mean:
...
...
...
내가 실행하면 printenv PATH
다음 /root/.cargo/bin
위치에 나타납니다.끝PATH, 처음에 추가했지만.
sudo /root/.cargo/bin/exa
명령을 실행하면 제대로 작동합니다. 원인은 무엇입니까/어떻게 제대로 작동하게 할 수 있습니까?
답변1
다음 중 하나를 수행해야 합니다.
1.
source ~/.bashrc
2.
. ~/.bashrc
- 로그아웃했다가 다시 로그인하세요.
답변2
경로를 가져오는 것이 작동하지 않으면 권한 문제일 수 있습니다. 이 버전은 루트로 실행하기 때문에 sudo
다른 변수를 사용하므로 권한은 문제가 되지 않지만 경로에서 바이너리를 찾을 수 없습니다.PATH
사용자가 디렉터리를 "탐색"(기술 용어가 무엇인지 잘 모르겠습니다)하려면 해당 디렉터리에 대한 "실행" 권한이 있어야 합니다. 디렉터리 내용이 나열되면 세 번째 위치에 X로 표시됩니다. 그래서 실행하면 sudo ls -lash /root
일부 결과는 다음과 같습니다.
4.0K drwx------ 10 root root 4.0K Feb 3 2020 .
4.0K drwxr-xr-x 24 root root 4.0K May 28 16:27 ..
두 번째 문자와 대시 세트는 권한입니다. 앞 부분은 d
디렉터리임을 나타내고 다음 세 글자( rwx
)는 파일 소유자에 대한 읽기, 쓰기 및 실행 권한을 나타냅니다. 다음 세 개( ---
의 경우 )는 파일과 관련된 "그룹" 에 대한 .
것입니다 . 마지막 그룹은 다른 모든 사람을 위한 그룹입니다./root
r-x
..
/
귀하의 권한이 나와 유사하면 루트 사용자만이 전체 루트 폴더를 읽고, 쓰고, 전달할 수 있습니다. 실행을 추가하여 이 문제를 해결할 수 있지만 루트 디렉터리/계정의 권한을 /root
조작하는 sudo chmod +x /root
것은 일반적으로 나쁜 생각이며 그룹이나 다른 관리 도구 대신 단일 명령을 사용하여 이 작업을 수행하는 것은 특히 나쁜 생각입니다. .
대신, 아마도 당신이 원하는 것은 모든 사용자를 위해 바이너리를 설치하는 방법을 찾는 것입니다. 일반적으로 다음과 같은 설치 방법이 있을 수 있습니다.
sudo make install
하지만 문서를 보면 다른 작업을 수행할 수도 있습니다.