Instalando Python automaticamente em qualquer sistema Linux.

Leia isto "em cerca de 8 minutos".

Olá :hand:, essa é uma dica rápida para você que deseja instalar o Python :snake: compilado através do código fonte (tarball). Boa leitura.

Introdução

Muitas vezes precisamos instalar um determinado programa para sistemas Linux e não temos o pacote de acordo com nossa distribuição. Como isso, várias empresas de determinados softwares nos disponibiliza os pacotes tarball, onde podemos compilar o programa e assim instala-lo, ou seja, esses pacotes é o source code (código fonte) do software genérico que ser a qualquer distribuição Linux.

Existe dois tipos de instalação genérica para Linux, programas com com a extensão .run, onde apenas executamos o mesmo para que a instalação comece e programas de código fonte para compilarmos e instalarmos. A última opção é a que vamos trabalhar nesse post.

Geralmente, o padrão para a instalação de pacotes genéricos (tarball), são apenas 3 comandos:

  • O de configurar;
  • O de compilar;
  • O de instalar;

Veremos abaixo, como instalar a ultima versão estável do Python automaticamente com um script shell, usando pacote tarball.

Instalação

Criando script de instalação automática

A - Abra seu editor de texto preferido e acrescente esses comando abaixo:

 1 #!/usr/bin/env bash
 2 # Description: Install latest version Python (auto)
 3 # Author: William Canin
 4 # License: MIT
 5 
 6 latest_version="$(curl -sL https://www.python.org | sed -nr 's/^<p>Latest:[^>]+>Python\s+([0-9]+(.[0-9]+)+).+/\1/p')"
 7 
 8 url_download="https://www.python.org/ftp/python/${latest_version}/Python-${latest_version}.tar.xz"
 9 
10 cd $HOME && wget ${url_download}
11 
12 sudo rm -rf /opt/Python-${latest_version}
13 
14 sudo tar -xvf Python-${latest_version}.tar.xz -C /opt
15 
16 sudo chmod 775 -R /opt/Python-${latest_version}
17 
18 cd /opt/Python-${latest_version}
19 
20 sudo ./configure
21 
22 sudo make
23 
24 sudo make install
25 
26 # sudo make -n install # Opcional
27 
28 printf "\nInstallation complete!\n"

Entendendo o que cada comando do script faz

Linha 3: Responsável por capturar a ultima versão estável do Python no site oficial através de expressões regulares e armazenar em uma variável.

Linha 5: Uma variável que armazena a url completa do download do pacote tarball.

Linha 7: Entra no diretório HOME do usuário atual do terminal e realizar o download do pacote tarball no mesmo diretório.

Linha 9: Remove qualquer pasta que foi utilizada para instalação o Python da mesma versão atual do download.

Linha 11: Descompacta o pacote tar.xz para o diretório /opt.

Linha 13: Dá permissão 775 para pasta Python-[VERSION] e suas subpastas e arquivos.

Linha 15: Entrando no diretório /opt/Python-[VERSION] para realizar a configuração, compilação e instalação do Python.

Linha 17: Configurando o Python para compilação.

Linha 19: Compilando o Python

Linha 21: Instalando o Python em si.

Linha 23: Essa linha é opcional, por padrão está comentada, porém, esse comando serve para mostrar quais passos foram feitos e onde foi colocado cada arquivo/pasta da instalação.

Linha 25: Essa linha é um mistério, dou um pirulito a quem descobrir para que serve. :D”

Salvando o script, e executando-o para a instalação do Python

B - Salve o arquivo com o nome de “pyinstaller.sh”.

C - Dê permissão de execução para o script com o comando abaixo:

1 chmod +x pyinstaller.sh

D - Execute o script com o comando abaixo e aguarde a instalação da última versão estável do Python:

Nota 1: Você precisa ter privilégio de superusuário (root) ou sudo.

Nota 2: Por padrão, a instalação do executável do Python é no diretório /usr/local/bin/python[version], a não ser que seja mudado o PATH na configuração (sudo ./configure).

1 bash pyinstaller.sh

Pronto! Se tudo deu certo, a instalação foi concluída. Você pode verificar o executável no diretório /usr/local/bin.

Desinstalação

Infelizmente, até o momento o pacote de source code do Python (tarball), não tem uma opção de comando para desinstalar, como por exemplo o comando make uninstall, isso porque, você pode ter várias versões do Python instalada através da compilação, e então não tem um desinstalador saber qual é que você queira remover.

Para resolver isso, o comando make -n install que está comentado no script que criamos, é justamente para lhe mostrar onde foi instalado os arquivos e pastas. Com base nessas informações, você deve remover a instalação manualmente apenas excluindo esses arquivos e pastas.

Para facilitar, criei um script que pode lhe poupar tempo de achar esses arquivos e pastas.

Criando script de remoção automática.

A - Abra um editor de sua preferência e coloque as linhas seguintes:

 1 #!/usr/bin/env bash
 2 # Description: Uninstall determined version Python (auto)
 3 # Author: William Canin
 4 # License: MIT
 5 
 6 prefix='/usr/local/'
 7 
 8 ls ${prefix}/bin
 9 
10 printf "[ Based on the list above, please tell us which version you wish to uninstall ]\n"
11 printf "> Type the version (E.g: 3.5): "
12 read -p pyver
13 
14 sudo rm -rfv \
15     ${prefix}bin/python${pyver} \
16     ${prefix}bin/pip${pyver} \
17     ${prefix}bin/pydoc \
18     ${prefix}bin/include/python${pyver} \
19     ${prefix}lib/libpython${pyver}.a \
20     ${prefix}lib/python${pyver} \
21     ${prefix}bin/python${pyver} \
22     ${prefix}bin/pip${pyver} \
23     ${prefix}bin/include/python${pyver} \
24     ${prefix}lib/libpython${pyver}.a \
25     ${prefix}lib/python${pyver} \
26     ${prefix}lib/pkgconfig/python-${pyver}.pc \
27     ${prefix}lib/libpython${pyver}m.a \
28     ${prefix}bin/python${pyver}m \
29     ${prefix}bin/2to3-${pyver} \
30     ${prefix}bin/python${pyver}m-config \
31     ${prefix}bin/idle${pyver} \
32     ${prefix}bin/pydoc${pyver} \
33     ${prefix}bin/pyvenv-${pyver} \
34     ${prefix}share/man/man1/python${pyver}.1 \
35     ${prefix}include/python${pyver}m
36     # ${prefix}bin/pydoc ## WARN: skip if other pythons in local exist.
37 printf "\nRemoval has been completed!\n"

Salvando o script, e executando-o para a remoção do Python

B - Salve o arquivo com o nome de “pyuninstaller.sh”.

C - Dê permissão de execução para o script com o comando abaixo:

1 chmod +x pyuninstaller.sh

D - Execute o script com o comando abaixo e aguarde a desinstalação:

Nota: Você precisa ter privilégio de superusuário (root) ou sudo.

1 bash pyuninstaller.sh

Conclusão

Esse tutorial pode ficar obsoleto com o tempo, então, lembre-se de ler o arquivo de README.rst que vem junto no pacote tar.xz no Python, nele contém informações mais detalhadas de como instalar (ou até mesmo remover) o Python de uma maneira bem completa.

Eu fico por aqui, abraço pra você. :smile:

jektify © 2019  +

Música

A Palavra

"Eu, o Senhor , examino os pensamentos e ponho à prova os corações. Eu trato cada pessoa conforme a sua maneira de viver, de acordo com o que ela faz." (Jeremias 17:10 NTLH)

Deixe seu comentário