오늘은 우분투에서 파이썬(선)을 업데이트 하는 방법을 알아 보겠습니다.
현재 사용하고 있는 우분투 버전에 따라 python 3.6 설치 방법이 달라지므로(참고: askubuntu.com)
우선 우분투와 우분투 배포판의 버전 확인 방법을 알아보고 안전한 python3 설치를 위하여 설치된 python의 버전과 설치 위치를 확인하는 방법을 알아보겠습니다.
우분투 및 관련 배포판(대표적으로 민트가 있죠)에서 배포판의 명칭 및 기반 우분투 버전을 확인하기 위해서는 두개의 명령으로 확인이 가능합니다.
배포판 명칭 및 기반 우분투 버전 확인
cat /etc/issue
uname -a
설치되어 있는 파이선의 버전을 확인
python -V
python3 -V
실제 설치된 위치확인
which python
which python3
확인된 위치의 파일이 실행파일인지 링크인지를 확인(설치된 버전 변경을 용이하게 하기 위하여 대부분 심볼릭 링크입니다.)
ls -al python
ls -al python3
Ubuntu 17.10은 한글문제 wayland관련 버그로 사용이 원할치 않아서 제가 사용중인 Linus Mint 18.2 Sonya에서 python 3.6을 설치하려고 합니다.
우분투 버전에 따라 python 3.6 설치 방법이 다르므로 우분투 버전에 따른 python 3.6 설치방법을 표로 정리해 보았습니다.(참고: askubuntu.com)
우분투버전 | 버전별 python 3.6 설치방법 |
Ubuntu 16.04 |
python3.6 이 universe repository에 등록되어 있지 않아 컴파일 또는 PPA로 부터 설치해야 합니다. 저는 PPA를 이용해서 설치 했습니다.(PPA에 대해서는 "우분투 PPA 저장소란? 추가,제거 방법" 포스트를 참고하시면 좋겠습니다.) 1.컴파일 해서 설치하는 방법 sudo apt install build-essential checkinstall sudo apt install libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz tar xvf Python-3.6.0.tar.xz 2. PPA로 부터 설치하는 방법 sudo add-apt-repository ppa:jonathonf/python-3.6
|
Ubuntu 16.10 and Ubuntu 17.04 |
universe repository에 이미 등록이 되어 있으므로 아래 명령으로 바로 설치가 가능합니다. sudo apt-get update |
Ubuntu 17.10 |
python 3.6.3이 기본 탑재되어 있지만 wayland와 한글의 압박이 있습니다. xorg를 사용하는 방법도 있지만 저는 하위 버전의 우분투를 쓰는 것이 더 좋다고 생각합니다. |
위 방법으로 python3.6은 설치되지만 기존에 설치된 python3(저는 3.5.2)을 삭제하지 않았으므로 설치후에도 python3는 기존 버전으로 실행되므로 기존 python3.5가 실행되는 원인을 확인하고 우분투에서 여러버전의 패키지를 관리할 수 있는 update-alternatives 명령어를 이용하여 기존에 설치되어 있던 python3.5 와 새로이 설치한 python3.6 버전을 둘다 이용할 수 있도록 해보겠습니다.
update-alternatives 명령어는 머가필요해님과 인환님의 포스팅을 참고 하시는 것이 좋을 것 같습니다.
머가필요해 님의 : update-alternatives (여러 버전의 패키지 관리하기)
lrwxrwxrwx 1 root root 9 10월 26 09:02 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 10월 26 09:02 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3.4M 12월 5 03:14 /usr/bin/python2.7
lrwxrwxrwx 1 root root 9 10월 26 09:02 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4.3M 11월 29 01:53 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4.3M 11월 29 01:53 /usr/bin/python3.5m
lrwxrwxrwx 1 root root 10 10월 26 09:02 /usr/bin/python3m -> python3.5m
bonohemi@mate01 ~/app $
sudo apt update
sudo apt install python3.6
설치 후 python3 -V로 확인해 봅니다.
분명히 설치가 잘되었지만 여전히 python3는 기존의 3.5.2 버전입니다.
ls -alh /usr/bin/python* 명령으로 확인을 해보니 python3 심볼릭 링크가 여전히 /usr/bin/python3 -> python3.5와 같이 기존의 python3.5로 설정되어 있습니다.
즉 python3.6은 설치가 되었지만 기존의 심볼릭 링크는 바꿔주지 않기 때문에 기존과 같이 python3으로 새로이 설치된 python3.6을 사용하기 위해서는 후속 작업을 해주어야 합니다.
아래와 같이 python3 심볼릭 링크를 지우고 다시 만들어 주는 방법이 있지만 위에서 언급한 바와 같이 update-alternatives 명령을 이용하여 좀더 우아하게(?) python3버전을 선택할 수 있도록 해보겠습니다.
sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.6 /usr/bin/python3
우선 update-alternatives명령어로 현재 python3의 심볼링 링크를 확인해 봅니다.
sudo update-alternatives --display python3
python3 alternatives 설정이 되어 있지 않다고 나오네요
기존의 python3 심볼릭 링크는 과감히 지워준 후 다시 심볼릭 링크를 조회해 봅니다.(확인을 위해서 하는 것이므로 심볼릭 링크를 꼭 지워야 하는 것은 아닙니다. update-alternatives 명령으로 기존 링크가 자동으로 바뀌어 지므로 아래 <<update-alternatives>> 설정을 바로 해도 됩니다.)
sudo rm /usr/bin/python3
ls -alh /usr/bin/python*
<<update-alternatives 설정>>
python3 alternatives 설정을 위해 아래의 명령을 차례대로 입력합니다.
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 2
sudo update-alternatives --display python3
sudo update-alternatives --config python3
마지막 명령 sudo update-alternatives --config python3를 입력하면 몇번을 선택할 것인지를 물어보는데 디폴트로 0번이 되어 있고 1번이나 2번을 선택할 수 있습니다.
또한 위 그림과 같이 ls -alh /usr/bin/python* 명령으로 파이선 심볼릭 링크를 확인하면 이제는 python3 심볼릭 링크가 /etc/alternatives/python3를 가르치고 있습니다.
이전 : /usr/bin/python3 -> python3.5
현재 : /usr/bin/python3 -> /etc/alternatives/python3
이제는 필요에 따라서 sudo update-alternatives --config python3 명령으로 원하는 버전의 python3를 실행할 수 있게 되었습니다.