2. 유닉스 플랫폼에서 파이썬 사용하기

2.1. 최신 버전의 파이썬 내려받기와 설치

2.1.1. 리눅스

파이썬은 대부분 리눅스 배포판에 사전 설치되어 있으며, 다른 모든 곳에서 패키지로 사용할 수 있습니다. 그러나 배포판 패키지에 없는 어떤 기능을 사용하고 싶을 수 있습니다. 소스에서 최신 버전의 파이썬을 쉽게 컴파일할 수 있습니다.

파이썬이 미리 설치되어 있지 않고 저장소에도 없으면, 여러분 자신의 배포를 위한 패키지를 쉽게 만들 수 있습니다. 다음 링크를 살펴보십시오:

2.1.2. FreeBSD와 OpenBSD

  • FreeBSD 사용자, 패키지를 추가하려면 이렇게 하십시오:

    pkg install python3
    
  • OpenBSD 사용자, 패키지를 추가하려면 이렇게 하십시오:

    pkg_add -r python
    
    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz
    

    예를 들어 i386 사용자는 이렇게 파이썬 2.5.1 버전을 얻습니다:

    pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz
    

2.1.3. OpenSolaris

OpenCSW에서 파이썬을 얻을 수 있습니다. 다양한 버전의 파이썬이 있으며, 예를 들어 pkgutil -i python27로 설치할 수 있습니다.

2.2. 파이썬 빌드하기

CPython을 직접 컴파일하려면, 먼저 소스를 얻습니다. 최신 버전의 소스를 내려받거나 새로 clone 할 수 있습니다. (패치에 이바지하려면 clone이 필요합니다.)

빌드 프로세스는 일반적으로 다음과 같은 명령으로 구성됩니다

./configure
make
make install

Configuration options and caveats for specific Unix platforms are extensively documented in the README.rst file in the root of the Python source tree.

경고

make installpython3 바이너리를 덮어쓰거나 가장 할 수 있습니다. 따라서 make altinstallmake install 대신 권장하는데, exec_prefix/bin/pythonversion 만 설치하기 때문입니다.

2.4. 잡동사니

유닉스에서 파이썬 스크립트를 쉽게 사용하려면, 실행 파일로 만들어야 합니다. 예를 들어, 이렇게

$ chmod +x script

그리고, 스크립트의 상단에 적절한 셔뱅(Shebang) 줄을 넣습니다. 좋은 선택은 대개 이렇습니다

#!/usr/bin/env python3

이것은 PATH 전체에서 파이썬 인터프리터를 검색합니다. 그러나, 일부 유닉스에는 env 명령이 없을 수 있으므로, 인터프리터 경로로 /usr/bin/python3를 하드 코딩해야 할 수 있습니다.

파이썬 스크립트에서 셸 명령을 사용하려면, subprocess 모듈을 보십시오.

2.5. Custom OpenSSL

  1. To use your vendor’s OpenSSL configuration and system trust store, locate the directory with openssl.cnf file or symlink in /etc. On most distribution the file is either in /etc/ssl or /etc/pki/tls. The directory should also contain a cert.pem file and/or a certs directory.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Download, build, and install OpenSSL. Make sure you use install_sw and not install. The install_sw target does not override openssl.cnf.

    $ curl -O https://www.openssl.org/source/openssl-VERSION.tar.gz
       $ tar xzf openssl-VERSION
       $ pushd openssl-VERSION
       $ ./config \
            --prefix=/usr/local/custom-openssl \
            --libdir=lib \
            --openssldir=/etc/ssl
       $ make -j1 depend
       $ make -j8
       $ make install_sw
       $ popd
    
  3. Build Python with custom OpenSSL (see the configure –with-openssl and –with-openssl-rpath options)

    $ pushd python-3.x.x
    $ ./configure -C \
        --with-openssl=/usr/local/custom-openssl \
        --with-openssl-rpath=auto \
        --prefix=/usr/local/python-3.x.x
    $ make -j8
    $ make altinstall
    

참고

Patch releases of OpenSSL have a backwards compatible ABI. You don’t need to recompile Python to update OpenSSL. It’s sufficient to replace the custom OpenSSL installation with a newer version.