Instalando e desinstalando o Python 3.x (versões 3.5 / 3.4.3)

0

Acabei de instalar o Python 3.5 (e seus 2908 arquivos de biblioteca) usando synaptic em cima da minha instalação funcional do Python 3.4 existente no Ubuntu 14.04. Olhando para o resultado, depois da instalação:

$ cd /usr/bin
$ ls -lsAFi python*
393463 0 lrwxrwxrwx 1 root root 18 Jul 2 2014 python -> /usr/bin/python2.7*
394201 0 lrwxrwxrwx 1 root root 9 May 9 2014 python2 -> python2.7*
393228 3272 -rwxr-xr-x 1 root root 3345416 Jun 22 20:51 python2.7*
394075 0 lrwxrwxrwx 1 root root 33 Jun 22 20:51 python2.7-config -> x86_64-linux-gnu-python2.7-config*
398355 0 lrwxrwxrwx 1 root root 16 Dec 21 2013 python2-config -> python2.7-config*
394203 0 lrwxrwxrwx 1 root root 9 Nov 27 11:04 python3 -> python3.5*
394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4*
394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4m*
395645 3672 -rwxr-xr-x 2 root root 3754696 Sep 17 19:03 python3.5*
396673 0 lrwxrwxrwx 1 root root 33 Sep 17 19:03 python3.5-config -> x86_64-linux-gnu-python3.5-config*
396677 0 lrwxrwxrwx 1 root root 11 Sep 17 19:03 python3.5-dbg -> python3.5dm*
396678 0 lrwxrwxrwx 1 root root 37 Sep 17 19:03 python3.5-dbg-config -> x86_64-linux-gnu-python3.5-dbg-config*
396676 13164 -rwxr-xr-x 1 root root 13455475 Sep 17 18:58 python3.5dm*
396679 0 lrwxrwxrwx 1 root root 35 Sep 17 19:03 python3.5dm-config -> x86_64-linux-gnu-python3.5dm-config*
395645 3672 -rwxr-xr-x 2 root root 3754696 Sep 17 19:03 python3.5m*
396674 0 lrwxrwxrwx 1 root root 34 Sep 17 19:03 python3.5m-config -> x86_64-linux-gnu-python3.5m-config*
394206 0 lrwxrwxrwx 1 root root 10 Nov 27 11:12 python3m -> python3.5m*
398354 0 lrwxrwxrwx 1 root root 16 Dec 21 2013 python-config -> python2.7-config*

- > ... alguns links simbólicos + 2 links físicos (inodes: 394046 e 395645).

Minhas perguntas:

  • qual é a razão para os arquivos pythonX.Y e pythonX.Ym coexistirem? python3.4 e python3.4m apontam para o mesmo conteúdo armazenado com dois nomes (link físico). O mesmo para python3.5 e python3.5m . Então, qual é o uso de ambos python3.4m e python3.5m ?

  • posso me livrar do Python 3.4 e de suas bibliotecas sem atrapalhar as coisas e como? (Por exemplo, se eu usar o synaptic, marcar Python 3.4 para "remoção" removerá automaticamente muitas dependências reversas, ou seja, o pacote de que preciso. De modo que não seja necessário.)

EDITAR:  
Para ajudar a responder a pergunta sobre onde obtive o Python 3.5, um pacote normalmente indisponível para usuários do Ubuntu, listo fontes de pacotes, de /etc/apt/sources.list . Eu não listo o ppa em /etc/apt/sources.list.d , pois eles são dedicados a apenas um pacote, diferente do Python 3.5:

De Canonical at link , salvo indicação em contrário: ( deb e deb-src )     
- fiel principal restrito     
- trusty-updates principal restrito     
- universo fiel     
- universo confiável-atualizações     
- multiverso fiel     
- trusty-updates multiverso     
- fidedigno-segurança principal restrito     
- universo de segurança confiável     
- multiverso de segurança confiável     
- link parceiro confiável
Software de terceiros: ( deb e deb-src )    
- link principal confiável
Software de terceiros: ( deb apenas)    
- link aplicativos confiáveis do getdeb    
- link multiverso principal multiverso restrito

    
por Cbhihe 27.11.2015 / 16:19

1 resposta

2

A razão para pares como este:

394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4*
394046 3628 -rwxr-xr-x 2 root root 3709944 Oct 14 23:42 python3.4m*

é o seguinte: "3.4m" é "3.4", vinculado a Pymalloc como mencionado em Arquivo da Lista de Correspondência: Re: l = range (int (1E9)) . Isso adiciona automaticamente o sufixo "m" (veja comentário devel / boost-python com python 3.4, e pymalloc ).

A mesma pergunta, por exemplo, foi feita em python3.4 vs python3.4m # 32402 (Homebrew), e alguém apontou para uma resposta mais detalhada aqui: PEP 3149 - Versão da ABI marcada com arquivos .so . Nessa página do PEP, a lógica descreve esse uso de links como pano de fundo para uma alteração proposta diferente que afeta os nomes usados para bibliotecas compartilhadas.

Quanto à remoção de um pacote: depende.

  • O Ubuntu 14.04 (como mencionado nos comentários) não fornece o python3.5 (ele fornece o python3.4).
  • Se você simplesmente remover python3.4 de um Ubuntu 14.04 comum, synaptic removeria (solicitando primeiro) cerca de cem pacotes, incluindo o Firefox.
  • Na verdade, eu uso apt-get primeiro, depois ajustei com aptitude , mas li que synaptic se comporta perto o suficiente para aptitude - e uma rápida verificação mostra que sim, embora algumas ordens de magnitude mais lento .
  • Então: se você instalou o python3.5 usando syntaptic , isso foi feito adicionando repositórios (não mencionados na pergunta), e o sucesso de synaptic em descartar o python3.4 dependeria do que outros pacotes que esses repositórios adicionais fornecem, e se os reconhece como compatíveis ou uma atualização válida.
por 28.11.2015 / 22:04

Tags