2. Uso de Python en plataformas Unix

2.1. Obteniendo e instalando la última versión de Python

2.1.1. En Linux

Python viene preinstalado en la mayoría de distribuciones Linux, y también está disponible como paquete en el resto. Sin embargo, hay determinadas características que puede que quiera usar y no están disponibles en tu paquete de distribución. Puedes compilar fácilmente la última versión de Python de la fuente.

En caso de que Python no venga preinstalado y tampoco se encuentre en los repositorios, puede crear fácilmente paquetes para su propia distribución. Eche un vistazo a los siguientes enlaces:

2.1.2. En FreeBSD y OpenBSD

  • Usuarios FreeBSD, para añadir al paquete use:

    pkg install python3
    
  • Usuarios OpenBSD, para añadir al paquete use:

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

    Por ejemplo, los usuarios de i386 obtienen la versión 2.5.1 de Python usando:

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

2.2. Construyendo Python

Si desea compilar CPython por sí mismo, lo primero que debería hacer es obtener la fuente. Puede descargar la fuente de la última versión o simplemente conseguir un nuevo clon. (Si desea contribuir con parches, necesitará un clon.)

El proceso de construcción consta de los comandos habituales:

./configure
make
make install

Opciones de configuración y las advertencias para plataformas Unix específicas están ampliamente documentadas en el archivo README.rst en la raíz del árbol de fuentes de Python.

Advertencia

make install puede sobreescribir o enmascarar el binario python3. Por lo tanto se recomienda make altinstall en lugar de make install debido a que sólo instala exec_prefix/bin/pythonversion.

2.4. Miscelánea

Para usar fácilmente los scripts de Python en Unix, debe hacerlos ejecutables, p. ej. con

$ chmod +x script

y coloque una línea Shebang adecuada en la parte superior del script. Una buena opción es usualmente

#!/usr/bin/env python3

que busca el intérprete de Python en el conjunto PATH. Sin embargo, algunos Unices puede que no tengan el comando env, por lo que es posible que deba codificar /usr/bin/python3 como la ruta intérprete.

Para usar comandos de shell en sus scripts de Python, mire el módulo subprocess.

2.5. OpenSSL personalizado

  1. Para utilizar la configuración de OpenSSL de su proveedor y el almacén de confianza del sistema, busque el directorio con el archivo openssl.cnf o el enlace simbólico en /etc. En la mayoría de las distribuciones, el archivo está en /etc/ssl o /etc/pki/tls. El directorio también debe contener un archivo cert.pem y / o un directorio certs.

    $ find /etc/ -name openssl.cnf -printf "%h\n"
    /etc/ssl
    
  2. Descargue, compile e instale OpenSSL. Asegúrese de utilizar install_sw y no install. El destino install_sw no anula 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. Construir Python con OpenSSL personalizado (consulte las opciones configure --with-openssl y --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

Las versiones de parche de OpenSSL tienen una ABI compatible con versiones anteriores. No es necesario volver a compilar Python para actualizar OpenSSL. Es suficiente reemplazar la instalación personalizada de OpenSSL con una versión más nueva.