병호의 IT새싹키우기

[Linux] alternatives 란? 본문

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

흐름

  1. /usr/bin/java : 일반사용자가 실행하는 명령어 (전달자 역할)
  2. /etc/alternatives/jaba : alternatives 시스템이 관리하는 심볼릭 링크
  3. 실제 프로그램 실행 파일 위치 : /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에서 여러버전의 소프트웨어를 효율적으로 관리할 수 있도록 해주는 도구