우분투(Ubuntu)를 설치하면 python path가 2.7로 설정되어 있습니다.
리눅스의 Alternatives
를 이용하면 python 버전을 쉽게 변경하고 관리할 수 있습니다.
Alternatives는 기본 커맨드의 심볼릭 링크를 관리해주는 리눅스 프로그램입니다.
데비안 계열의 리눅스(우분투)에서는 update-alternatives
가 제공됩니다.
update-alternatives에 대한 자세한 설명과 명령어는 manpages를 참고해주세요.
파이썬의 실행 위치 및 Alternative 설명
which python
명령어를 사용하면 현재 사용하는 파이썬이 어디에 설치되어있는지 알 수 있습니다.
파일 이름을 보면 실제 위치가 아니라, 심볼릭 링크이고 파이썬이 실제 설치된 위치를 가리킬 것 같습니다.
$ python -V
Python 2.7.14
$ which python
/usr/bin/python
ls -al /usr/bin/python
로 어떤 파일을 가리키는지 확인할 수 있습니다.
이 파일이 가리키는 파일은 /usr/bin/python2.7
입니다.
$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24 4월 18 19:28 /usr/bin/python -> /usr/bin/python2.7
그리고 ls /usr/bin/
를 보면 다양한 버전의 파이썬 실행파일들이 있습니다.
$ ls /usr/bin/ | grep python
python
python2
python2.7
python3
python3.6
.....
아시겠지만 PC에는 여러버전의 파이썬이 설치되어있고 Alternative로 주로 사용할 파이썬을 선택하는 방식으로 관리를 하고 있습니다.
update-alternatives는 다음과 같은 기능을 하여 버전 관리를 쉽게할 수 있습니다.
- 현재 /usr/bin/python => /usr/bin/python2.7 를 가리키고 있습니다.
- 파이썬3.6로 변경하려면 /usr/bin/python => /usr/bin/python3.6 를 가리키도록 변경해야 합니다.
- 파이썬3.7로 변경하려면 /usr/bin/python => /usr/bin/python3.7 를 가리키도록 변경해야 합니다.
update-alternatives에 여러버전의 파이썬을 등록하고 변경하는 것을 해보겠습니다.
Update-alternatives로 파이썬 버전 등록 및 변경
먼저 파이썬을 등록하기 전에 이미 등록된 것이 있는지 확인해야 합니다.
update-alternatives --config python
옵션은 python 버전을 변경하는 옵션입니다.
만약 아래 error 로그처럼 설정된 것이 없다고 한다면 아무것도 등록된 것이 없다는 의미입니다.
$ sudo update-alternatives --config python
update-alternatives: error: no alternatives for python
update-alternatives --install [symbolic link path] python [real path] number
명령어는 실행파일을 등록하는 명령어입니다.
아래와 같이 입력하면 2.7과 3.6버전이 update-alternatives에 등록됩니다. 물론 파이썬 2.7과 3.6이 설치되어 있어야 합니다. 만약 설치위치가 저와 다르다면 자신의 PC에 설치된 path로 변경하셔야 합니다.
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
그리고 update-alternatives --config python
을 다시 입력하면 등록한 파이썬 버전을 선택하는 메뉴가 나옵니다.
$ sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.6 2 auto mode
1 /usr/bin/python2.7 1 manual mode
2 /usr/bin/python3.6 2 manual mode
Press <enter> to keep the current choice[*], or type selection number: 2
원하는 메뉴의 번호를 입력하고 파이썬 버전을 확인해 보세요.
파이썬의 link를 따라가보면 alternatives 명령어로 설정한 /usr/bin/python3.6
를 가리킵니다.
$ python --version
Python 3.6.3
$ ls -al /usr/bin/python
lrwxrwxrwx 1 root root 24 4월 18 19:28 /usr/bin/python -> /etc/alternatives/python
$ ls -al /etc/alternatives/python
lrwxrwxrwx 1 root root 18 9월 2 13:59 /etc/alternatives/python -> /usr/bin/python3.6
정리
Alternatives는 파이썬뿐만 아니라 Java 등의 모든 프로그램의 버전을 관리하는데 사용할 수 있습니다. 여기서는 파이썬을 예로 들었습니다.
참고
- update-alternatives에 대한 자세한 설명은 Ubuntu manpage를 참고해주세요.
- 우분투에 파이썬3.7을 설치하는 방법은 Python3.7 설치(Ubuntu18.04)를 참고해주세요.
Related Posts
- Ubuntu/Linux - 특정 이름이 들어간 파일 모두 찾고 삭제하기
- Ubuntu/Linux - 특정 이름이 포함된 프로세스 모두 종료
- Ubuntu/Linux - 사용자 계정 이름 확인 (id, whoami)
- Ubuntu/Linux - E: unable to locate package 에러 해결
- Ubuntu 22.04/20.04 - Yarn 설치 방법
- Linux/Ubuntu - grep 명령어로 문자열 검색
- Linux/Ubuntu - 터미널에서 seq로 명령어 N회 반복
- Linux/Ubuntu - wc 명령어로 Line(줄) 개수 세기
- bash: pip: command not found 문제 해결 (Linux/Ubuntu)
- Ubuntu 22.04 - Swap 메모리 늘리기
- Linux - 파일이 수정된 날짜/시간 확인 방법
- Linux - 파일, 디렉토리 삭제 명령어(rm -rf, rmdir)
- 우분투 22.04 - deb 파일 설치하기
- Ubuntu 20.04 - OpenJDK 11 설치, 삭제
- Linux - ps 명령어로 실행 중인 프로세스(PID) 확인
- Ubuntu 20.04 - SSH 설치와 접속 방법
- Ubuntu에서 PPA 저장소 추가, 제거 방법
- Ubuntu 22.04 - Brave 브라우저 설치
- Ubuntu 22.04 - 프로스트와이어(FrostWire) 설치
- Ubuntu 22.04 - Remmina 설치 방법
- Ubuntu 22.04 - Rust 설치하기
- Ubuntu 22.04 - 텔레그램 설치하기
- Ubuntu - Deluge 토렌트 클라이언트 설치
- Ubuntu JDK 17 (OpenJDK) 설치, 삭제
- Ubuntu 20.04 스팀(Steam) 설치 방법
- Ubuntu에서 draw.io 설치하는 방법
- 우분투에 VMware 설치하기
- [Ubuntu] VMware에서 Windows 11 설치
- Vi/Vim에서 1줄 또는 여러줄 삭제 방법
- Vi/Vim에서 라인 번호 표시하 기
- 우분투에서 rar 압축, 압축 풀기
- Ubuntu에서 구글 드라이브 사용하기 (로컬 폴더에 마운트)
- [Ubuntu] apt-cache search, 설치 가능한 패키지 검색
- Ubuntu - DNS 캐시 삭제 방법
- Ubuntu에서 사용할 수 있는 Text Editor 소개