홈 > IT > IT정보
IT정보

리눅스 update-alternatives 명령어

2 realdragonhead 0 85 0 0

리눅스 update-alternatives 명령어


하나의 프로그램도 여러 패키지 버전이 있습니다.

예를 들어 파이썬도 2.7.12 버전이 있지만 최신 버전인 3.6.5 버전이 있습니다.

이 외에도 수많은 버전이 있으며 다른 프로그램 대부분도 마찬가지 입니다.

이 버전들을 옵션을 통해 관리할 수 있게 우분투에서 명령어로 지원을 합니다.

그게 update-alternatives 명령어입니다.


이 명령어가 하는 역할을 간단히 설명하면 python3 이라고 치면 기존에 3.5 버전이 실행되었다고 가정하고,

사용자가 3.6.5 버전을 설치하였고 혹시나 필요시 사용하기 위해 3.5 버전도 유지하고 싶다면

옵션에서 버전을 선택할 수 있고 선택한 버전을 실행이 가능한 상태로 만들어주게 됩니다.


python3 명령어에 대해서 update-alternatives 명령어를 적용해 3.5 버전과 3.6.5 버전을 번갈아 가며 사용해 보겠습니다.


먼저 python3 의 심볼릭 링크를 확인해봅니다.

# sudo update-alternatives --display python3
update-alternatives: 오류: no alternatives for python3

python3에 대해서 alternatives 설정이 되어 있지 않은 것을 확인해 볼 수 있습니다.


그럼 alternatives 적용을 하기 위해 아래와 같은 명령어를 입력합니다.

각자 차이가 있겠지만 저는 python 프로그램을 다음과 같은 순서로 저장했습니다.

# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6.5 2
# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3m 3
# sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5m 4


적용이 되었는지 확인을 해보면

# sudo update-alternatives --display python3
python3 - 수동 모드
  link best version is /usr/bin/python3.5m
 링크가 현재 /usr/bin/python3.5 가리킴
  link python3 is /usr/bin/python3
/usr/bin/python3.5 - 우선순위 1
/usr/bin/python3.5m - 우선순위 4
/usr/bin/python3.6.5 - 우선순위 2
/usr/bin/python3m - 우선순위 3

와 같이 적용이 된 것을 확인해 볼 수 있습니다.


확인이 되었다면 먼저 3.5를 python3 명령어로 실행되는 것을 적용시키기 위해서 아래 명령어을 입력해주면 아래와 같은 화면이 출력이 됩니다.

#sudo update-alternatives --config python3
대체 항목 python3에 대해 (/usr/bin/python3 제공) 4개 선택이 있습니다.


  선택       경로                우선순위 상태
------------------------------------------------------------
  0            /usr/bin/python3.5m    4         자동 모드
* 1            /usr/bin/python3.5      1         수동 모드
  2            /usr/bin/python3.5m    4         수동 모드
  3            /usr/bin/python3.6.5    2         수동 모드
  4            /usr/bin/python3m      3         수동 모드


Press <enter> to keep the current choice[*], or type selection number:

숫자값을 입력 받는 화면이 나오게 됩니다. 현재 3.5가 선택되어 있지만 1을 입력하여 종료시켜줍니다.


그리고 python3 명령어를 입력해 python을 실행시켜 보게 되면 3.5가 실행이 되는 것을 확인해 볼 수 있습니다.

# python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>


그럼 이제는 3.6.5 버전을 실행시키기 위해 아래 명령어를 입력해 3.6.5가 설정되어 있는 3값을 입력해줍니다.

# sudo update-alternatives --config python3
대체 항목 python3에 대해 (/usr/bin/python3 제공) 4개 선택이 있습니다.


  선택       경로                우선순위 상태
------------------------------------------------------------
  0            /usr/bin/python3.5m    4         자동 모드
* 1            /usr/bin/python3.5     1         수동 모드
  2            /usr/bin/python3.5m    4         수동 모드
  3            /usr/bin/python3.6.5   2         수동 모드
  4            /usr/bin/python3m      3         수동 모드


Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/python3.6.5 to provide /usr/bin/python3 (python3) in manual mode


그리고 python3 명령어를 통해 python을 실행시키면 아래와 같이 실행이 됩니다.

# python3
Python 3.6.5 (default, May 11 2018, 23:16:18)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

이렇게 버전 별로 관리가 가능하여 혹시나 버전이 너무 높거나 낮아 호환이 되지 않는 것들에 대해 예방책을 가지고 있을 수 있습니다.

,

0 Comments