Instalando versões antigas de pacotes python com apt-get (especificamente wxpython)

1

Eu tenho batido minha cabeça contra a parede tentando solucionar problemas de um programa gráfico com um back-end do WX. Descobrimos que o wxPython 2.8.10 funciona bem e, aparentemente, qualquer versão mais recente não funciona. Apesar de toda a ajuda que recebi para a construção do wxPython da fonte

link

link

O processo de criação falhou e tentamos todas as abordagens listadas. De qualquer forma, descobrimos que fazer um link simbólico para o wx do system-python funcionava bem, mas infelizmente apt-get install nos deixou com 2.8.12 . Minha pergunta é como eu posso apt-get install uma versão mais antiga do wxpython, ou qualquer pacote para esse assunto?

Estou no Ubuntu MATE 14.04, mas verifiquei que esse problema ocorre no OSX e no Ubuntu 12, portanto, provavelmente não é um problema dependente do sistema operacional.

    
por Adam Hughes 20.01.2015 / 21:05

2 respostas

2

Como você parece ter problemas para compilar a partir do código-fonte, por que não instalar o pacote direto dos repositórios do Ubuntu?

Se você fizer uma pesquisa no link para wxPython em todas as versões, terá este resultado e no pacote python- wxversion título nessa página você encontrará:

lucid-updates (python): wxWidgets Kit de ferramentas GUI C ++ para várias plataformas (wxPython version selector) [universo] 2.8.10.1-0ubuntu1.2 : todos

Nessa página, clique no botão all , faça o download do pacote manualmente e instale por sudo dpkg --install python-wxversion_2.8.10.1-0ubuntu1.2_all.deb

Atenção

Instalando arquivos .deb diretamente dos repositórios, irá ter esses pacotes atualizados automaticamente pelo atualizador do Ubuntu Software, então não esqueça de echo python-wxversion hold | sudo dpkg --set-selections depois de ter meticulosamente Instalei-o para mantê-lo nessa versão!     
por 21.01.2015 / 12:53
1

Aqui está um esboço de como substituir o wxPython 2.8.12 por 2.8.10. Isso provavelmente funcionará, mas sem realmente tentar, não posso ter certeza.

Você pode achar esta pergunta / resposta útil como referência: Como posso instalar versões mais recentes de software do que as que o Debian oferece? . O que você está tentando fazer aqui não é exatamente um backport, mas é similar.

  1. Verifique se o Ubuntu tem uma versão do 2.8.10 flutuante em torno de lançamentos recentes. Se assim for, você poderia tentar reconstruir isso em Seu sistema. Se não, você precisará fazer isso da maneira mais difícil.
  2. Faça o download da fonte do wxPython 2.8.12.

    apt-get source python-wxgtk2.8
    

    Isso baixaria a fonte de wxwidgets2.8 para você. Isso pressupõe a presença das linhas deb-src apropriadas em /etc/apt.sources.list .

  3. Obtenha uma versão original do wxPython 2.8.10 , descompacte-o e copie o diretório Debian da fonte wxwidgets2.8 Debian / Ubuntu. Você precisará renomear o tarball para se adequar ao nome do Debian. esquema, e também atualizar o changelog Debian. Se você conseguir isso construir, você é bom. O comando de compilação que eu uso normalmente é

    debuild -uc -us
    

    usando debuild do pacote devscripts . Você provavelmente precisará para instalar algumas dependências de compilação. Você pode primeiro executar dpkg-checkbuilddeps para verificar a situação das dependências de compilação.

  4. Um método alternativo é usar as fontes de link . Estes são para Debian, mas provavelmente funcionará em um sistema Ubuntu. Estes são Debian fontes, você pode apenas reconstruí-los diretamente.

NOTA: Se você fizer uma instalação bem-sucedida de 2.8.10 , provavelmente precisará fazer algo para impedir que o apt e os amigos atualizem o wxPython de volta para 2.8.12 . Existem maneiras diferentes de fazer isso, mas uma maneira simples e eficaz é usar épocas. Mas esse é um detalhe que pode ser resolvido se um esforço de reconstrução for bem-sucedido.

    
por 21.01.2015 / 00:30

Tags