Falha na instalação do python de 32 bits no Linux Mint de 64 bits

1

Eu basicamente tenho duas perguntas:

  1. Como você instala o Python de 32 bits ao lado do Python de 64 bits no linux?
  2. Como corrijo meu sistema quebrado da tentativa com falha abaixo?

Eu apenas tentei instalar um python de 32 bits ao lado do meu python de 64 bits no Linux Mint 16. Não é tão direto como eu esperava (algo como sudo apt-get install python32 seria legal) mas depois de um pouco de googling eu baixei o Python 2.7.6 e fiz o seguinte:

sudo apt-get install ia32-libs gcc-multilib checkinstall
CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 -Lpwd/lib32 -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" ./configure --prefix=/opt/pym32
make
sudo checkinstall

O supostamente deveria me tornar capaz de rodar 32 bits ou 64 bits (padrão) assim:

python -c 'import sys; print sys.maxint'
/opt/pym32/bin/python -c 'import sys; print sys.maxint'

... mas /opt/pym32/ nem sequer foi criado. Pior, meu sistema agora reporta 29 dependências quebradas, indicando que o novo python substituiu o antigo ou algo parecido. Para corrigir isso, o aptitude sugere que eu remova um monte de pacotes que eu preciso e instale um monte de pacotes que eu não preciso.

Eu usei o checkinstall em vez de make install para poder reverter / desinstalar se algo deu errado, mas desinstalar / reinstalar o python não funcionará devido às dependências quebradas. Existe uma maneira de sair dessa bagunça?

    
por Skynet 06.08.2014 / 11:08

1 resposta

2

pacotes de 32 bits na plataforma de 64 bits

Primeiro de tudo, você precisa permitir que seu gerenciador de pacotes instale pacotes com arquitetura diferente. Mas quem é quem? Apt é uma combinação simples de wget e dpkg . O gerenciador de pacotes real é dpkg , que fornece infra-estrutura de baixo nível para manipular operações com pacotes *.deb reais.

Então, vamos ver as arquiteturas disponíveis para o nosso caso particular:

dpkg-architecture --list-known | grep -E "amd64|i386"

ou

dpkg-architecture --list-known | ack "amd64|i386"

Como você pode ver, no nosso caso as arquiteturas são amd64 e i386 . Agora você pode permitir que o gerenciador de pacotes instale i386 packages:

sudo dpkg --add-architecture i386

Agora você pode instalar seus pacotes:

sudo aptitude update && sudo aptitude install python2.7:i386

Normalmente, a primeira instalação do pacote i386 resulta na instalação de muitos pacotes de dependência. Por exemplo, no meu teste Debian x86_64 GNU / Linux (stretch) instalando skype (que depende de libc6:i386 ) resulta na instalação de 189 pacotes:

dpkg --get-selections | ack i386 -c

O problema é que python2.7:i386 conflita com python2.7 e muitos pacotes dependem de python2.7 . Então, você não poderá instalar python2.7:i386 sem remover todo o ambiente gráfico.

Corrigir dependências quebradas

Isso é simples:

sudo apt-get install -f && sudo dpkg --configure -a
    
por 29.06.2015 / 18:54