윈도우에서 programm files는 프로그램 실행에 필요한 파일들을 저장하고 여러 사용자가 공유하는 폴더이다 .
리눅스에서 위와 같은 역할을 하는 디렉토리는 /usr 디렉토리다 .
저번에 링크파일을 통해 jdk를 $PATH에 올려 놨었는데 이번에는 /etc/environment에 직접 JDK 위치를 올려놓는 방식으로 전역화 해보려한다. (profile에 올려놓는 것보다는 environment에 올려놓는 것이 좋다 .)
현재 압축해재한 jdk는 ~/download라는 폴더에 위치하고 있는데
먼저 /usr/local에 java라는 디렉토리를 만들고 jdk 패키지를 /usr/local로 옮겨보자 .
sudo mkdir java (/usr/local에서 java라는 폴더생성 /user/local의 소유자가 root이기 떄문에 sudo코드로 실행)
mv jdk1.8.0_161 /usr/local/java (jdk를 /user/local/java 로 이동)
jdk 디렉토리가 잘 이동되었다.
이제 /etc/environment에 해당 경로를 등록해보자
/etc/environment에는 PATH에 대한 정보들이 들어 있다 : 으로 PATH들이 구분되어 있으니 맨뒤로 가서
:입력후 현재 jdk의 위치인 /usr/local/java/jdk1.8.0_161/bin (bin에 실행파일들이 있으니 bin까지 설정해줘야함)
를 등록하자
디렉토리명이 기억이 안날 경우 ctrl + z를 누르면 현재 nano 창을 백그라운드로 실행시킨다.
경로 확인 후 원래 foreground로 돌아가려면 fg 1로 nano 창으로 돌아갈 수 있다.
경로등록을 하고 저장 후에 java -version을 해보면 실행되지 않는다 . 변경된 /etc/environment가 읽히지 않아서 그런다. 로그아웃 후에 다시 로그인하여도 되지만 이럴경우
source 명령어를 사용하면 해당 파일을 읽는다 .
source /etc/environment 를 실행 하고 다시 java -version을 해보자 java version이 잘 출력된다.
source를 하면 $PATH가 초기화 되는 이유가 머지 ?(source 작동 방식 찾아보기)
환경변수로 사용되고 있는 jdk 디렉토리의 경로는 전체 사용자가 사용하는 것인데
ls -l로 jdk 디렉토리의 소유자를을 보면 jdk를 설치한 사용자로만 소유자와 소유그룹이 설정되어 있다.
디렉토리의 other 권한이 r-x (읽기 , 실행가능)이기 떄문에 실행이 가능했지만 만약 실행권한이 없었다면
환경변수로 설정했어도 다른 사용자들은 실행할 수 없었을 것이다 .
위의 문제를 해결하기 위해선 소유그룹을 만들어 줘야한다. 소유그룹 만드는 것은 다음번에 알아보려한다.
'Linux' 카테고리의 다른 글
리눅스 공부 9 - update alternatives 와 update java alternatives (0) | 2021.06.24 |
---|---|
리눅스 공부 8 -설치 관리자 (dpkg 와 apt ), 자바 버전 관리 (0) | 2021.06.24 |
리눅스 공부 6 - 리눅스 프로필과 환경변수 설정 (0) | 2021.06.23 |
리눅스 공부 5- 명령어에 별칭 부여 , 리눅스 부팅 순서 (0) | 2021.06.23 |
리눅스 공부 3 - 사용자 관리 (사용자 추가 ,폴더 소유자 소유그룹 변경 ) (0) | 2021.06.22 |