alternative_로_실행_명령어_버전_관리

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
alternative_로_실행_명령어_버전_관리 [2024/12/20 10:40] – 만듦 koovalternative_로_실행_명령어_버전_관리 [2024/12/20 11:06] (현재) koov
줄 1: 줄 1:
 ====== alternative 로 실행 명령어 버전 관리 ====== ====== alternative 로 실행 명령어 버전 관리 ======
-''alternatives'' 명령어는 리눅스 시스템에서 여러 버전의 프로그램이 설치되어 있을 때, 기본적으로 사용할 프로그램을 관리하는 데 유용합니다. 예를 들어, ''java'', ''editor', ''(x)emacs'', ''(n)vi(m)'' 등의 프로그램에 대해 여러 버전이 존재할 때, ''alternatives''를 통해 기본 프로그램을 설정하고 관리할 수 있습니다.+ --- //[[koovis@gmail.com|이강우]] 2024/12/20 11:06// 
 + 
 + 
 +''alternatives'' 명령어는 리눅스 시스템에서 여러 버전의 프로그램이 설치되어 있을 때, 기본적으로 사용할 프로그램을 관리하는 데 유용합니다. 예를 들어, ''java'', ''editor'', ''(x)emacs'', ''(n)vi(m)'' 등의 프로그램에 대해 여러 버전이 존재할 때, ''alternatives''를 통해 기본 프로그램을 설정하고 관리할 수 있습니다.
  
 ====== alternatives 명령어의 주요 기능 ====== ====== alternatives 명령어의 주요 기능 ======
줄 30: 줄 33:
 명령어를 실행하면, 사용 가능한 프로그램 목록이 표시되며, 원하는 프로그램의 번호를 입력하여 선택할 수 있습니다. 명령어를 실행하면, 사용 가능한 프로그램 목록이 표시되며, 원하는 프로그램의 번호를 입력하여 선택할 수 있습니다.
  
-====== 주의사항 ======+===== 주의사항 =====
   * ''alternatives'' 명령어는 시스템 전역 설정을 변경하므로, 관리자 권한이 필요합니다.   * ''alternatives'' 명령어는 시스템 전역 설정을 변경하므로, 관리자 권한이 필요합니다.
   * 환경 변수(예: ''EDITOR'', ''CC'')의 설정은 ''/etc'' 또는 사용자의 홈 디렉토리(''$HOME/.profile'')에서 직접 관리하는 것이 좋습니다.   * 환경 변수(예: ''EDITOR'', ''CC'')의 설정은 ''/etc'' 또는 사용자의 홈 디렉토리(''$HOME/.profile'')에서 직접 관리하는 것이 좋습니다.
   * ''alternatives'' 명령어를 활용하면, 시스템에 설치된 여러 버전의 프로그램을 효율적으로 관리하고, 사용자나 스크립트의 요구에 맞게 기본 프로그램을 손쉽게 변경할 수 있습니다.    * ''alternatives'' 명령어를 활용하면, 시스템에 설치된 여러 버전의 프로그램을 효율적으로 관리하고, 사용자나 스크립트의 요구에 맞게 기본 프로그램을 손쉽게 변경할 수 있습니다. 
  
-====== alternatives 명령어로 python 버전 관리하는 방법 ======+====== Master - Slave 관계 설정 ====== 
 + 
 +**Master-Slave 관계란?** 
 +''alternatives''에서는 하나의 **마스터** 설정(예: ''/usr/bin/java'')이 선택되면, 그와 연결된 **슬레이브** 설정들(예: ''javac'', ''javadoc'', ''javaws'' 등)이 함께 변경되도록 설정할 수 있습니다. 이를 통해 자바와 관련된 모든 바이너리 및 설정 파일이 동시에 변경됩니다. 
 + 
 +===== Master-Slave 관계 설정 예제 ===== 
 +아래는 ''alternatives''를 사용해 자바 관련 설정에서 ''master-slave'' 관계를 구현하는 방법입니다. 
 + 
 +==== 1. 기본 자바 설치 경로 ==== 
 +자바가 설치된 경로를 예로 들면: 
 +  * ''/usr/lib/jvm/java-8-openjdk/bin/java'' 
 +  * ''/usr/lib/jvm/java-11-openjdk/bin/java'' 
 + 
 +==== 2. Master-Slave 등록 ==== 
 +각 버전의 자바에 대해 마스터와 슬레이브 관계를 등록합니다. 예를 들어: 
 + 
 +<WRAP prewrap> 
 +<code bash> 
 +alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-openjdk/bin/java 1 \ 
 +    --slave /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk/bin/javac \ 
 +    --slave /usr/bin/javadoc javadoc /usr/lib/jvm/java-8-openjdk/bin/javadoc \ 
 +    --slave /usr/bin/javaws javaws /usr/lib/jvm/java-8-openjdk/bin/javaws 
 + 
 +alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 2 \ 
 +    --slave /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk/bin/javac \ 
 +    --slave /usr/bin/javadoc javadoc /usr/lib/jvm/java-11-openjdk/bin/javadoc \ 
 +    --slave /usr/bin/javaws javaws /usr/lib/jvm/java-11-openjdk/bin/javaws 
 +</code> 
 +</WRAP> 
 + 
 +==== 3. Master-Slave 작동 방식 ==== 
 +  - ''/usr/bin/java''가 **마스터**로 설정됩니다. 
 +  - ''javac'', ''javadoc'', ''javaws''는 **슬레이브**로 등록되어 있습니다. 
 +  - 사용자가 ''alternatives --config java'' 명령어로 자바 버전을 변경하면, 슬레이브들(''javac'', ''javadoc'', ''javaws'')도 동시에 변경됩니다. 
 + 
 +===== Master-Slave 등록 상태 확인 ===== 
 +다음 명령어를 사용하여 마스터와 슬레이브 관계를 확인할 수 있습니다. 
 + 
 +<WRAP prewrap> 
 +<code bash> 
 +alternatives --display java 
 +</code> 
 +</WRAP> 
 + 
 +출력 예: 
 +<WRAP prewrap> 
 +<code bash> 
 +java - status is auto. 
 + link currently points to /usr/lib/jvm/java-11-openjdk/bin/java 
 +/usr/lib/jvm/java-8-openjdk/bin/java - priority 1 
 + slave javac: /usr/lib/jvm/java-8-openjdk/bin/javac 
 + slave javadoc: /usr/lib/jvm/java-8-openjdk/bin/javadoc 
 + slave javaws: /usr/lib/jvm/java-8-openjdk/bin/javaws 
 +/usr/lib/jvm/java-11-openjdk/bin/java - priority 2 
 + slave javac: /usr/lib/jvm/java-11-openjdk/bin/javac 
 + slave javadoc: /usr/lib/jvm/java-11-openjdk/bin/javadoc 
 + slave javaws: /usr/lib/jvm/java-11-openjdk/bin/javaws 
 +</code> 
 +</WRAP> 
 + 
 +===== 결론 ===== 
 +  - ''alternatives''의 **Master-Slave 기능**을 통해, 마스터 바이너리를 변경하면 관련된 슬레이브 바이너리들도 자동으로 변경됩니다. 
 +  - 이는 자바 환경 설정의 일관성을 유지하기 위해 유용하게 사용됩니다. 
 +  - 다른 프로그램(예: ''python'')에서도 동일한 방식으로 적용할 수 있습니다. 
 + 
 +===== alternatives 명령어로 python 버전 관리하는 방법 =====
  
 ''python'' 명령어에 심볼링 링크 설정 방법 ''python'' 명령어에 심볼링 링크 설정 방법
줄 54: 줄 122:
  
 alternatives --config python3 alternatives --config python3
 +</code>
 +</WRAP>
 +
 +  * master-slave로 구현
 +
 +<WRAP prewrap>
 +<code bash>
 +alternatives --install /usr/bin/python python /usr/bin/python3.9 1 \
 +    --slave /usr/bin/python3 python3 /usr/bin/python3.9
 +
 +alternatives --install /usr/bin/python python /usr/bin/python3.12 2 \
 +    --slave /usr/bin/python3 python3 /usr/bin/python3.12
 +
 +alternatives --config python
 </code> </code>
 </WRAP> </WRAP>
  
  
  • alternative_로_실행_명령어_버전_관리.1734691200.txt.gz
  • 마지막으로 수정됨: 2024/12/20 10:40
  • 저자 koov