실수로 /usr/bin/ 이하의 링크를 지웠거나, 또는 위 그림과 같이 다음의 PATH:(/bin:/usr/bin:/sbin:/usr/sbin)
경로에 실행가능한 파일이 없다는 error가 발생했을때의 해결방법에 알아보도록 하겠습니다.
1. /bin, /usr/bin, /sbin, /usr/sbin 이 뭐죠?
우선 error를 해결하기 위해서는 위의 디렉토리가 어떤 의미를 가지는지를 아셔야 합니다. 우선 무언가를 실행하기위한 파일이 없다는 것
이라는 에러메시지를 통해 실행파일
? 정도들이 저장되는 곳임을 유추해볼수 있을 것입니다. 네 거의 맞습니다. 정확하게는 리눅스의 명령어들이 저장되는 디렉토리들 입니다.
/bin
bin
은 linux의 기본 명령어들이 저장되는 디렉토리입니다. 위 그림은 ls -al /bin
의 결과화면 입니다.
/usr/bin
usr/bin
의 경우에는 사용자들이 주로 사용하는 명령어가 모여있는 디렉토리입니다. 실제 명령어 파일, 또는 명령어 파일의 위치를 심볼릭 링크로 연결해둡니다. python등의 명령어 파일이 이곳에 심볼릭 링크로 연결되곤 합니다.
Linux 디렉토리별 의미 : https://webdir.tistory.com/101
sbin
으로 끝나는 디렉토리들의 경우에는 보통 시스템 명령어들이 존재하는 디렉토리 입니다. 디렉토리 구조를 알아보는 포스팅이 아니므로 여기까지만 설명드리겠습니다. 위 링크로 이동하신다면 Linux의 각 디렉토리별 의미를 파악하시는데 도움이 될것입니다.
2. 해결방법
저를 제외한 독자 여러분은 이미 해결방법을 떠올리셨을 것입니다. 결론부터 말씀드리자면 위의 에러메시지에서 요구하는 경로(/bin:/usr/bin:/sbin:/usr/sbin)에 명령어 파일을 넣어주면 끝입니다.
2.1 실행 가능한 파일 찾기
이 시점에서 궁금한것이 바로 실행 가능한 파일을 찾는 방법입니다. type
명령어를 이용해 찾아보도록 하겠습니다. 위 그림은 type --help
의 결과 입니다. 설명을 읽어보면 명령어에 대한 정보를 출력해주는 명령어 임을 알 수 있습니다. 그 중에서도 -p
옵션은 실행될 수 있는 파일을 출력해줍니다.
java의 실행가능한 파일의 위치는 위와 같습니다. /usr/bin
과 같이 명령어파일이 모여있는 위치에 심볼릭링크나 명령어파일이 존재하지 않는 경우 위와같이 프로그램이 설치된 경로의 명령어 파일의 위치가 나타납니다.
git의 경우에는 /usr/bin
위치에 실행가능한 파일이 위치하기 때문에, 위와 같이 경로가 나타납니다.
2.2 /usr/bin 위치에 심볼릭 링크 만들기
ln -s /usr/lib/jvm/java-8-openjdk-amd64/bin/java /usr/bin/java
위의 명령어를 이용하면 /usr/bin
에 java
라는 이름으로 심볼릭 링크가 생성됩니다.
'Linux > Linux' 카테고리의 다른 글
Linux - Caused by: java.net.SocketException: Permission denied 에러 해결방법 (0) | 2019.09.10 |
---|---|
Linux - 컴파일 설치 이유와 방법 - 수정중 (0) | 2019.02.05 |
Linux - cGroups 란? (0) | 2019.02.01 |
Linux - Namespace 란? (0) | 2019.02.01 |