Instalação do Python a partir do código fonte

Você já precisou executar uma rotina Python nova em uma máquina que, de tão antiga, nem mesmo o Pyenv consegue rodar e instalar a versão do Python desejada? Se sim, segue lendo, talvez este texto te ajude.

As boas regras escritas e divulgadas aos quatro ventos, pregam que devemos manter os servidores atualizados com as últimas versões estáveis e homologadas de todas as ferramentas em uso (e todo mundo que lê isso acredita que esta seja é uma verdade absoluta e todos os outros lá fora seguem a risca esta norma se sentindo frustrados por não seguirem esta premissa).

Na prática isso só vale no papel. Que atire a primeira pedratecla o sysadmin que não tenha ao menos um servidor rodando uma versão antiga e sem suporte de alguma distribuição Linux porque há um sistema legado em produção que o custo de migração para uma solução mais moderna é inviável por algum motivo.

Eu tive um problema desses ao atualizar os pacotes do Ansible em meu desktop de trabalho e que passou a exigir como requisito mínimo a versão 3.5 do Python nas máquinas gerenciadas.

Nada demais se eu só lidasse com sistemas operacionais atualizadíssimos, mas na prática eu tenho um servidor interno rodando uma versão mais antiga do que isso do Python e precisava que as minhas playbooks permanecessem funcionando.

A solução definitiva só virá quando for possível aposentar tal sistema, mas até lá eu preciso que esta máquina continue tão gerenciável quanto possível então deveria instalar o Python na versão exigida, o que se mostrou mais simples do que eu imaginava.

A primeira coisa a fazer é acessar a página de download do site oficial do Python e procurar pela versão desejada. Embora antes da dobra da página seja exibida a versão mais recente para download, role a tela para baixo e você verá as versões mais antigas disponíveis.

No meu caso, como exemplo, eu precisava da versão 3.5, então procurei pelo último lançamento desta versão que foi a 3.5.10.

Ao clicar no link “Download” você é levado para página de download do pacote com esta versão do Python que é disponibilizado usando alguns formatos de compressão especificos.

Uma vez que o pacote foi baixado e transferido para a máquina que precisava ter o Python atualizado, bastava então descompactá-lo e realizar a sua compilação com o conjunto de comandos a seguir (todos juntos para agilizar a explicação):

tar -Jxf Python-3.5.10.tar.xz
cd Python-3.5.10
./configure
make
sudo make install

Neste caso o pacote foi baixado em formato tar.xz e após descomprimir e entrar em sua pasta, os “três comandos básicos” de compilação e instalação para maioria das ferramentas Linux deram conta do problema.

Após cerca de 10 minutos (na máquina em questão) o Python 3.5 estava compilado, instalado e funcionando a contento.

welington@debian6:~/Python-3.5.10$ python3
Python 3.5.10 (default, Jun  1 2023, 14:42:08) 
[GCC 4.4.5] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Embora no exemplo acima eu esteja na pasta de onde fiz a compilação, os executáveis foram instalados em /usr/local/bin e estão acessíveis em todo o sistema e por todos os usuários.

É importante ainda observar que neste caso, a máquina só possuía uma versão antiga do Python 2.6 que é reconhecida apenas como “python”, então sempre que eu invocar “python3” a versão nova é quem será carregada sem grandes impactos nas demais aplicações, do contrário o Python original é quem será iniciado.

Esteja atento a este fato, pois se a sua máquina já possuir qualquer versão do Python 3 em uso, talvez você cause um estrago maior do que o que queria consertar e como o Python novo está com nome diferente, talvez você precise fazer alguns ajustes na sua aplicação para ela encontrar o interpretador correto.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.