본문 바로가기
IT/Linux

여러 버전의 패키지 관리하기 (update-alternatives)

by 성준하이 2023. 9. 2.
반응형

ubuntu 에서 자주 사용하는 update-alternatives 에 대해서 다뤄 보려고 한다.

 

예를들어 자바를 사용한다고 할 경우 요즘엔 자바 17버전을 많이 사용하지만 프로젝트나 기업에 따라 11버전이나 8버전을 아직 사용하는곳들도 많이 존재한다.

파이선 역시 버전에 따라서 사용하는 , 사용가능한 라이브러리나 속도가 다르기에 다양한 버전을 사용한다.

그럴경우 패키지들의 버전을 관리해줘야한다.

그때 필요한게 이 update-alternatives 명령어 이다.

 

현재 로컬 리눅스에서 아래 명령어를 사용해보았다.

 

$update-alternatives --config python

 

결과는 아래와 같다.

  Selection    Path                      Priority   Status

------------------------------------------------------------

* 0            /usr/local/bin/python3.7   2         auto mode

  1            /usr/bin/python3.9         1         manual mode

  2            /usr/local/bin/python3.7   2         manual mode


이걸 살펴보면 일단 피시에는 총 3개의 파이선을 사용할수 있는 경로가 있고,

0번이 *로 선택되어서 default python으로 사용중이다.

각 python의 심볼릭링크 경로가 나오고 우선순위가 보인다.

 

그리고 자동으로 수동으로 잡히는 모드까지도 적혀있다.

 

등록

특정 패키지를 설치한 후 다음과 같은 명령어로 등록을 할 수 있다.

sudo update-alternatives --install <link> <name> <path> <priority>


각 항목에 대한 설명은 다음과 같다.

옵션 설명
<link>   실행파일 이름으로 /etc/alternatives/<name> 을 가리킨다.
 (예: /usr/bin/pager) 
<name>   해당 링크 그룹의 대표 이름으로, 여러 가지 버전의 패키지들을 대표하는 이름으로 보면 될 것 같다.
 (예: pager)
<path>   alternatives 로 실제 연결할 실행파일 이름으로, 시스템에 설치한 패키지의 실행파일 이름이다.
 (예: /usr/bin/less)
<priority>   automatic 모드에서 어떤 것을 자동으로 선택해서 사용할지 결정할 때 사용되는 우선순위로, 높은 수가 더 높은 우선순위이다.

 

삭제

설정한 내역을 지워버리고 싶을 때에는 다음과 같이 하자.

 

sudo update-alternatives --remove <name> <path>

 

 

설정

등록한 내역을 설정하기 위해서는 다음과 같이 하면 된다.

 

sudo update-alternatives --set <name> <path>

반응형

'IT > Linux' 카테고리의 다른 글

[Mac] hosts 파일 수정 (/etc/hosts)  (33) 2023.09.10
VNC 란? (x11vnc 설치법) (vnc-server)  (47) 2023.09.04
sed 명령어  (46) 2023.08.06
Netcat 에 대해(nc)  (37) 2023.07.12
[쉘스크립트] if 문법 정리  (36) 2023.06.03

댓글