[Linux] update-alternatives 명령 (php, python 버전 관리)
- 우분투 리눅스에서 프로그램의 여러 버전 관리 (linux ubuntu php version, python version)
한개 패키지의 여러 버전이 설치되어 있는 경우
update-alternatives를 이용해 심볼링 링크를 수정해서 기본 실행 버전 변경하기
//-------------------------------------
/etc/alternatives 폴더에 심볼릭 링크가 저장됨
- php 확인
$ ls -l /etc/alternatives | grep php
$ sudo update-alternatives --list php
//-------------------------------------
* php 기본 버전 설정하기
- 현재 버전 확인
$ php --version
- 기본 버전 변경
$ sudo update-alternatives --config php
//-----------------------------------------------------------------------------
< python >
- 기본 파이썬 설치
$ sudo apt install python2 python3 -y
//-------------------------------------
- 파이썬 특정 버전을 지정해서 설치하는 방법
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.10
//-------------------------------------
- 설치된 경로 확인
$ which python2
/usr/bin/python2
$ which python3.10
/usr/bin/python3.10
$ which python3.12
/usr/bin/python3.12
//-------------------------------------
- update-alternatives에 설정 추가
$ sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python2 20
- '/usr/bin/python2'는 'which python2'의 결과
- 맨끝의 숫자 20은 우선도(priority), 높을 수록 우선 선택됨
$ sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3 30
$ sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.10 310
$ sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.12 32
- 설정된 리스트 확인
$ sudo update-alternatives --list python
- 현재 기본 실행 버전 확인
$ python --version
- 기본 실행 버전 수정(선택)
$ sudo update-alternatives --config python # => 사용자 입력 필요
- 사용자 입력 없이 버전 선택
sudo update-alternatives --set python /usr/bin/python3.10
sudo update-alternatives --set python /usr/bin/python3.12
//-------------------------------------
// 참고
How to Use update-alternatives Command on Ubuntu
https://linuxhint.com/update_alternatives_ubuntu/
http://manpages.ubuntu.com/manpages/trusty/man8/update-alternatives.8.html
하나의 심볼릭 링크로 여러 개의 패키지 관리하기 - update-alternatives
http://no1linux.org/hottips/28242