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

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

### 2.1.1. 리눅스

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

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

더 보기

https://www.debian.org/doc/manuals/maint-guide/first.en.html

  데비안 사용자용

https://en.opensuse.org/Portal:Packaging

  OpenSuse 사용자용

https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html

  Fedora 사용자용

http://www.slackbook.org/html/package-management-making-packages.html

  Slackware 사용자용

### 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. 파이썬 빌드하기

If you want to compile CPython yourself, first thing you should do is get the source. You can download either the latest release’s source or just grab a fresh clone. (If you want to contribute patches, you will need a 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 install`은 `python3` 바이너리를 덮어쓰거나 가장 할 수 있습니다. 따라서 `make altinstall`을 `make install` 대신 권장하는데, `exec_prefix/bin/pythonversion` 만 설치하기 때문입니다.

## 2.3. 파이썬 관련 경로와 파일

These are subject to difference depending on local installation conventions; `prefix` and `exec_prefix` are installation-dependent and should be interpreted as for GNU software; they may be the same.

예를 들어, 대부분 리눅스 시스템에서, 기본값은 모두 `/usr`입니다.

파일/디렉터리 | 의미
--- | ---
`exec_prefix/bin/python3` | 인터프리터의 권장 위치.
`prefix/lib/pythonversion`, `exec_prefix/lib/pythonversion` | 표준 모듈을 포함하는 디렉터리의 권장 위치.
`prefix/include/pythonversion`, `exec_prefix/include/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.