Instalar várias versões de Python sobre GNU/Linux via buildout

Baseado no tutorial Brito:Instalar várias versões de Python sobre GNU/Linux com bootstrap, e utilizando o projeto https://github.com/collective/buildout.python.git, criei este novo tutorial para instalar especificamente algumas das versões disponíveis para instalação.

No tutorial mensionado são instalados as versões abaixo e todas suas dependências:

  • python-2.4
  • python-2.5
  • python-2.6
  • python-2.7
  • python-3.2
  • python-3.3
  • python-3.4
  • python-3.5

Escopo

No escopo deste tutorial, serão instalados apenas duas versões:
  • Python-2.4
  • Python-2.7

Dependências

Debian like

sudo aptitude install build-essential libssl-dev python curl

RedHat like

sudo yum groupinstall "Development tools" && sudo yum install openssl-devel python curl

Procedimentos

  1. Usar o git para baixar os fontes:
    git clone https://github.com/collective/buildout.python.git /opt/python
  2. acesse o diretório dos fontes:
    cd /opt/python
  3. Use um editor de texto para acessar o buildout.cfg
    vim buildout.cfg
    O conteúdo apresentado será este abaixo:
  4. edite o arquivo buildout.cfg removendo as linhas (8,9,11,12,13,14,15,16,24,25,27,28,29,30,31 e 32) indicadas de vermelho na exibição abaixo:
    # This is here just for backward compatibility
    [buildout]
    extends =
        src/base.cfg
        src/readline.cfg
        src/libjpeg.cfg
        src/python24.cfg
    
        src/python25.cfg
        src/python26.cfg
    
        src/python27.cfg
    
        src/python32.cfg
        src/python33.cfg
        src/python34.cfg
        src/python35.cfg
        src/pypy.cfg
        src/pypy3.cfg
    
        src/links.cfg
    
    parts =
        ${buildout:base-parts}
        ${buildout:readline-parts}
        ${buildout:libjpeg-parts}
        ${buildout:python24-parts}
    
        ${buildout:python25-parts}
        ${buildout:python26-parts}
    
        ${buildout:python27-parts}
    
        ${buildout:python32-parts}
        ${buildout:python33-parts}
        ${buildout:python34-parts}
        ${buildout:python35-parts}
        ${buildout:pypy-parts}
        ${buildout:pypy3-parts}
    
        ${buildout:links-parts}
    
    python-buildout-root = ${buildout:directory}/src
    
    # we want our own eggs directory and nothing shared from a
    # ~/.buildout/default.cfg to prevent any errors and interference
    eggs-directory = eggs
    
    [install-links]
    prefix = /opt/local
    
    
    Ficará assim ao final:
  5. Execute o bootstrap.py
    python bootstrap.py -c buildout.cfg
  6. Execute o buildout para compilar a nova estrutura
    # time ./bin/buildout -c buildout.cfg
    real 6m14.989s
    user 4m23.186s
    sys 0m59.757s
    
  7. Pronto, e estará disponível a estrutura com virtualenv para os novos projetos.
    tree bin/
    bin/
    ├── buildout
    ├── install-links
    ├── virtualenv-2.4
    └── virtualenv-2.7
    
  8. Disponibilizar para o sistema operacional
    ln -sfv /opt/python/bin/virtualevn-* /usr/local/bin/

Comentários