2. Utilizando Python em plataformas Unix

2.1. Obtendo e instalando a versão mais recente do Python

2.1.1. No Linux

O Python vem pré-instalado na maioria das distribuições Linux e está disponível como um pacote em todos as outras. No entanto, existem certos recursos que podemos querer utilizar e que não estão disponíveis no pacote da sua distro. Poderás compilar facilmente a versão mais recente do Python desde a origem.

Nas situações em que o Python não vier pré-instalado e também não estiver nos repositórios, poderás facilmente gerar os pacotes para a sua distro. Veja os seguintes links:

2.1.2. No FreeBSD e OpenBSD

  • usuários do FreeBSD, para adicionar a utilização do pacote utilize:

    pkg install python3
    
  • Usuários do OpenBSD, para adicionar pacotes use:

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

    Por exemplo, usuários i386 podem pegar a versão 2.5.1 do Python usando o comando:

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

2.2. Compilando o Python

Se você quer compilar o CPython, a primeira coisa que você precisa fazer é baixar o código-fonte. Você pode baixar a última versão ou usar o git para fazer um clone. (Se você pretende contribuir modificações, você vai precisar um “clone”.)

O processo de compilação consiste nos comandos usuais:

./configure
make
make install

Opções de configuração e advertências para plataformas específicas do Unix estão amplamente documentadas no arquivo README.rst na raiz da árvore de fontes Python.

Aviso

make install pode sobrescrever ou mascarar o arquivo binário python3. make altinstall é, portanto, recomendado ao invés de make install uma vez que o mesmo apenas instala o arquivo exec_prefix/bin/pythonversion.

2.4. Diversos

Para usar facilmente scripts Python no Unix, você precisa torná-los executáveis, por exemplo, com

$ chmod +x script

e colocar uma linha Shebang apropriada no topo do script. Uma boa escolha normalmente é

#!/usr/bin/env python3

que procura o interpretador do Python no conjunto PATH. No entanto, alguns sistemas Unix podem não ter o comando env, então você pode precisar codificar /usr/bin/python3 como o caminho do interpretador.

Para usar comandos Shell em seus scripts Python, veja o módulo subprocess.

2.5. OpenSSL personalizado

  1. Para usar a configuração OpenSSL do seu fornecedor e armazenamento confiável do sistema, localize o diretório com o arquivo openssl.cnf ou link simbólico em /etc. Na maioria das distribuições o arquivo está em /etc/ssl ou em /etc/pki/tls. O diretório também deve conter um arquivo cert.pem e/ou um diretório certs.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Baixe, construa e instale o OpenSSL. Certifique-se de usar install_sw e não install. O destino install_sw não substitui o 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. Construa Python com o OpenSSL personalizado (veja as opções configure --with-openssl e --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
    

Nota

As versões de patches do OpenSSL têm uma ABI compatível com versões anteriores. Você não precisa recompilar o Python para atualizar o OpenSSL. É suficiente substituir a instalação personalizada do OpenSSL por uma versão mais recente.