0. 개요

  python 2는 리눅스에서 디폴트로 설치되어 있기도 하고 yum 등의 많은 프로그램에서 사용된다. 그래서 가끔 python 3 이상을 요구하는 프로그램을 사용할 때 매우 불편한 점이 있다. 리눅스의 특성상 여러 모로 불편한데다가 다시 python 2로 돌아올 필요가 있기 때문이다. 여기서는 파이썬 3를 설치한 후 간단한 스크립트를 이용해 자동으로 변경할 수 있는 팁을 설명한다. 사실 많은 곳에 올라와 있는 자료이다.





1. 리눅스에서 파이썬 3 설치


$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

$ tar xf Python-3.* 

$ cd Python-3.*

$ ./configure

$ make

$ make install





2. 메커니즘

  PATH에는 /usr/bin/ 디렉터리가 포함된다. 다른 많은 명령어들처럼 파이썬도 여기에 들어있다. 예제를 통해 보자면 다음과 같이 있다고 하자.


...  -  python

...  1  python2 -> python

...  -  python2.6


  python이라는 바이너리와 python2.6이라는 바이너리가 존재한다. 그러므로 이 두 명령어를 사용해서 파이썬을 실행할 수 있다. (아마 이 두개는 날자다 크기를 보니 같은 것으로 보인다) 중요한 것은 python2이다. 이것은 심볼릭 링크로서 python을 가리킨다. 즉 python2라고 명령어를 입력하면 가리키고 있는 python을 실행한다. 이 특징을 이용할 것이다.


# mv /usr/bin/python /usr/bin/python_keep

  먼저 원래 파이썬 파일을 python_keep이라는 이름으로 변경한다. 이것은 원본 파일을 백업하는 역할이다.


# ln -s /usr/bin/Python-3.6.1/python /usr/bin/python

  이제 설치한 파이썬 3를 가리키는 심볼릭 링크를 생성하는데 이름은 python이다. 이것을 통해 이제부터 셸에서 python을 입력하면 파이썬 3가 실행될 것이다.


다시 파이썬 2로 복구해보자


# rm /usr/bin/python

  아까 생성한 심볼릭 링크 파일을 삭제한다.


# mv /usr/bin/python_keep /usr/bin/python"

  백업했던 원본 파일의 이름을 다시 python으로 변경한다. 이제부터는 셸에서 python을 입력하면 파이썬 2가 실행될 것이다.





3. 셸 스크립트


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


#!/bin/bash


# If name is pyCh.sh, then use like

# "./pyCh.sh p2" or "./pyCh.sh p3"

# my path of python3 is "/usr/bin/Python-3.6.1/python"


this=$1


if [ "$this" = "p2" ]

then

        cmd1="rm /usr/bin/python"

        cmd2="mv /usr/bin/python_keep /usr/bin/python"

elif [ "$this" = "p3" ]

then

        cmd1="mv /usr/bin/python /usr/bin/python_keep"

        cmd2="ln -s /usr/bin/Python-3.6.1/python /usr/bin/python"

fi


cmd3="python --version"


$cmd1

$cmd2

$cmd3


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


  이것을 자동화한 스크립트로서 만약 스크립트 이름이 pyCh.sh이고 옵션이 각각 p2, p3라면 다음과 같이 사용할 수 있다.


# ./pyCh.sh p3

파이썬 3로 전환한다.


# ./pyCh.sh p2

파이썬 2로 전환한다.


  간단한 스크립트이지만 리눅스에서 이것 저것 하다보면 은근히 사용할 일이 많은것 같다. 적어도 몇 년은 이렇게 사용해야 할 것 같다.


'삽질' 카테고리의 다른 글

dokuwiki 백업하기  (0) 2017.12.22
Posted by SanseoLab

블로그 이미지
Malware Analyst
SanseoLab

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함