Apt quebrado após atualizar python em 14.04 - Nenhum módulo chamado 'lsb_release'

4

Recentemente, precisei de uma versão atualizada do Python3 para um projeto, então eu criei a partir da origem; e acredito que fiz uma bagunça. Todas as operações baseadas em apt agora terminam com um erro aqui:

(Reading database ... 320897 files and directories currently installed.)
Removing nvidia-prime (0.6.2) ...
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 28, in <module>
    import lsb_release
ImportError: No module named 'lsb_release'
dpkg: error processing package nvidia-prime (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 nvidia-prime
E: Sub-process /usr/bin/dpkg returned an error code (1)

Eu acredito que o erro nvidia é apenas mais um sintoma do que um problema. Isso foi descoberto quando eu estava tentando adicionar uma fonte e encontrei:

sudo: add-apt-repository: command not found

Eu gostaria de atualizar esta caixa para 14.10, mas todos os comandos baseados em upgrade retornam a mesma mensagem de lsb_release. Algum conselho sobre como restaurar minhas habilidades de gerenciamento de pacotes?

Editar: Atualizando com informações de caminho do python

lars@whorus:~/Downloads/Python-3.4.2$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       9 Dec 18 10:36 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root       9 Apr 18  2014 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3349512 Mar 22  2014 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9 Mar 23  2014 /usr/bin/python3 -> python3.4
-rwxr-xr-x 2 root root 4061272 Apr 11  2014 /usr/bin/python3.4
-rwxr-xr-x 2 root root 4061272 Apr 11  2014 /usr/bin/python3.4m
lrwxrwxrwx 1 root root      10 Mar 23  2014 /usr/bin/python3m -> python3.4m
    
por lars 18.12.2014 / 21:28

2 respostas

4

O Ubuntu 14.04 também tem o arquivo lsb_release.py instalado para o Python 2.7 e o lsb_release também funciona com o python2.7. Você pode tentar fazer isso:

python2.7 /usr/bin/lsb_release

Se isso funcionar, faça um backup do arquivo /usr/bin/lsb_release e altere a primeira linha para ler:

#! /usr/bin/python2.7

(você pode experimentar com as opções -Es , eu as deixaria de fora inicialmente).

Quando puder executar apt-get novamente, reinstale o python3 e suas dependências. Você pode determinar as dependências diretas usando apt-cache depends python3 e usar apt-rdepends ou reverse-depends (ambos precisam ser instalados) para obter dependências recursivamente.

    
por 19.12.2014 / 08:18
1

Provavelmente você substituiu o python padrão por uma versão personalizada.

head /usr/bin/lsb_release

para ver o que está no cabeçalho. Forçá-lo a versões específicas do python como em / usr / bin deve resolver o problema.

Como no meu caso, se ele escreve /usr/bin/python em /usr/bin/lsb_release , mude para

/usr/bin/python2.7

o / w, mude para

/usr/bin/python3.4
    
por 22.02.2017 / 14:56

Tags