Linux
[Linux] alternatives 란?
병호네
2025. 2. 19. 09:32
1. alternatives 개념
리눅스에서는 같은 프로그램의 여러 버전이 설치 될때가 많음(예: Java 8, Java 11, Java17)
이떄 alternatives 를 아용하면, 어떤 버전을 기본으로 사용할지 쉽게 설정할 수 있음.
심볼릭 링크(Symlink)를 사용해서 여러 실행 파일 중에서 자동으로 경로를 지정해 줌
2. alternatives의 동작 방식
alternatives 시스템은 실행파일에 대해 3단계 심볼릭 링크 체인을 만듬
/usr/bin/java -> /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk/bin/java
흐름
- /usr/bin/java : 일반사용자가 실행하는 명령어 (전달자 역할)
- /etc/alternatives/jaba : alternatives 시스템이 관리하는 심볼릭 링크
- 실제 프로그램 실행 파일 위치 : /usr/lib/jvm/jaba-11-openjdk/bin/java
3. alternatives명령어 사용법
설치된 대체 항목 확인
버전 변경 (대체 항목 선택)
설치된 Java 저번이 나타남, 기본으로 사용할 버전을 선택할수 있음
수동으로 버전 설정
sudo alternatives --set java /usr/lib/jvm/java-17-openjdk/bin/java
↑↑↑↑↑↑↑↑↑↑↑↑
아부분에 버전 명시
특정 Java 버전으로 기본 실행 경로를 변경.
대체 항목 추가
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 1100
새 Java 버전을 alternatives에 등록.
4. alternatives를 사용하는 이유
- 같은 프로그램의 여러 버전이 공존할 때 충돌을 방지함
- 사용자가 손쉽게 기본 프로그램 저번을 전환할 수 있게함
- 시스템 경로(/usr/bin)에서 직접 변경할 필요 없이 안전하게 관리
5. alternatives 경로
- 관리 파일: /var/lib/alternatives/
- 심볼릭 링크: /etc/alternatives/
결론
alternatives는 Linux에서 여러버전의 소프트웨어를 효율적으로 관리할 수 있도록 해주는 도구