Como remover o Python com elegância?

4

Eu apenas tentei atualizar a instalação do Python na minha máquina do CentOS. Depois de alguns momentos de falha, eu fiz yum remove python .

Então os problemas começaram a acontecer. yum encontrou cerca de 300 dependências na máquina, depois que eu confirmei a operação, quase todos os comandos e utilitários ficaram indisponíveis, incluindo ls , wget , yum em si ... Eu não tenho escolha a não ser reiniciar a instância ( Estou tão agradecido que é apenas uma máquina de desenvolvimento.)

Eu estou querendo saber se a remoção de python é tão prejudicial, existe alguma maneira de remover o python graciosamente?

    
por shihpeng 01.10.2014 / 08:03

1 resposta

6

O Python é requerido por muitas das distribuições do Linux. Muitos utilitários de sistema que os provedores de distribuição combinam (baseados em GUI e não) são programados em Python.

A versão do python em que os utilitários do sistema estão programados chamarei o python "principal". Para o Ubuntu 12.04, por ex. esta é a versão 2.7.3, que você obtém quando invoca python em um sistema recém-instalado.

Por causa dos utilitários do sistema que são escritos em python, é impossível remover o python principal sem quebrar o sistema. É preciso mesmo muito cuidado para atualizar o python principal com uma versão posterior na mesma série major.minor, já que você precisa se preocupar em compilá-lo com as mesmas especificações de configuração do python principal. Isso é necessário para obter os caminhos de pesquisa corretos para as bibliotecas que o python principal usa, o que geralmente não é exatamente o que um .configure sem opções obteria, ao baixar o python para fazer uma compilação do python a partir do código-fonte.

Instalar uma versão diferente da versão major.minor que o sistema usa (ou seja, o python principal) normalmente não é um problema. Ou seja você pode compilar um python 2.6 ou 3.4 e instalá-lo sem nenhum problema, pois ele é instalado próximo ao python principal (2.7.X). Às vezes, uma distro fornece esses diferentes pacotes major.minor, mas eles podem não ser a última versão de bug da série.

Os problemas começam quando você quer usar o mais recente da série principal do python (por exemplo, 2.7.8 em um sistema com a versão principal do python é 2.7.3). Eu recomendo não tentar substituir o python principal, mas sim compilar e instalar o 2.7.8 em um local separado (o meu está em /opt/python/2.7.8). Isto irá mantê-lo na programação de segurança da sua distribuição e garante que outra pessoa testa a compatibilidade das bibliotecas python e contra essa versão (como é usada pelos utilitários do sistema!).

Para qualquer desenvolvimento usando essa versão do python, use virtualenv , (ou virtualenvwrapper ) e configurar um ambiente 2.7.8 usando:

virtualenv -p /opt/python/2.7.8/bin/python /tmp/test
source /tmp/test/bin/activate

(a segunda linha assume que você está usando bash )

    
por 01.10.2014 / 09:48

Tags