2. Использование Python на платформах Unix

2.1. Получение и установка последней версии Python

2.1.1. В Linux

Python предустановлен в большинстве дистрибутивов Linux и доступен в виде пакета во всех остальных. Однако есть некоторые функции, которые вы можете захотеть использовать, но которые не доступны в пакете вашего дистрибутива. Вы можете легко скомпилировать последнюю версию Python из исходного кода.

Если Python не поставляется предустановленным и отсутствует в репозиториях, вы можете легко создать пакеты для своего дистрибутива. Посмотрите следующие ссылки:

См.также

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

для пользователей Debian

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 получают версию Python 2.5.1, используя:

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

2.1.3. На OpenSolaris

Вы можете получить Python по адресу OpenCSW. Существуют различные версии Python, которые можно установить, например, с помощью pkgutil -i python27.

2.2. Создание Python

Если вы хотите скомпилировать CPython самостоятельно, первое, что вы должны сделать, это получить source. Вы можете скачать либо исходники последнего выпуска, либо просто взять свежий clone. (Если вы хотите вносить исправления, вам понадобится клон).

Процесс сборки состоит из обычных команд:

./configure
make
make install

Configuration options и предостережения для конкретных платформ Unix подробно описаны в файле README.rst в корне дерева исходников Python.

Предупреждение

make install может перезаписать или замаскировать двоичный файл python3. Поэтому рекомендуется make altinstall вместо make install, поскольку он устанавливает только exec_prefix/bin/pythonversion.

2.4. Разное

Чтобы легко использовать скрипты Python на Unix, необходимо сделать их исполняемыми, например, с помощью функции

$ chmod +x script

и поместите соответствующую строку Shebang в начало скрипта. Хорошим выбором обычно является

#!/usr/bin/env python3

которая ищет интерпретатор Python во всем пути PATH. Однако некоторые Unices могут не иметь команды env, поэтому вам может понадобиться жестко указать /usr/bin/python3 в качестве пути к интерпретатору.

Чтобы использовать команды shell в своих сценариях Python, обратите внимание на модуль subprocess.

2.5. Пользовательский OpenSSL

  1. Чтобы использовать конфигурацию OpenSSL вашего производителя и системное хранилище доверия, найдите каталог с файлом openssl.cnf или симлинком в /etc. В большинстве дистрибутивов этот файл находится в /etc/ssl или /etc/pki/tls. Каталог также должен содержать cert.pem файл и/или certs каталог.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Загрузите, соберите и установите OpenSSL. Убедитесь, что вы используете install_sw, а не install. Цель install_sw не отменяет 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. Сборка Python с пользовательским OpenSSL (см. опции configure –with-openssl и –with-openssl-rpath).

    $ 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
    

Примечание

Патч-релизы OpenSSL имеют обратно совместимый ABI. Вам не нужно перекомпилировать Python для обновления OpenSSL. Достаточно заменить пользовательскую установку OpenSSL на более новую версию.

Вернуться на верх