Forçar reparo do dpkg

Forçar reparo do dpkg

Cometi um erro terrível e apaguei duas pastas do /usr/libdiretório do meu Debian. Eu apaguei python2.7/epkgconfig/

Coisas que tentei consertar sem sucesso:

  • sudo dpkg -i python2* ->"não foi possível encontrar bibliotecas independentes de plataforma"-->"/usr/lib/pyton2.7/py_compile.py esse arquivo não existe"

  • até mesmo excluí-lo (python; para reinstalação futura) via sudo dpkg -i python2.7-minimal-> não é possível remover porquepython2.7-minimal depende de python2.7-minimal (>=... .deb) e python2.7 depende de python2.7-minimal (>=..._rc2.deb)

Portanto, não posso reinstalá-lo ou reparar os pacotes, desde que eles não sejam "configurados" pelo dpkg como apt-get install pythondiz, mas também não posso removê-los para uma reinstalação limpa, pois são dependências de versões diferentes no dpkg e não sei como resolver isso.

Então, como posso remover completamente um pacote com todas as dependências via dpkg ou apt para resolver a situação descrita acima?

Responder1

Se aptestiver bloqueado, às vezes é possível acertar as coisas manualmente com dpkgo caminho completo do pacote em cache local. Veja como:

  1. cdao local onde aptarmazena as embalagens, nomeadamente/var/cache/apt/archives/
  2. dpkgentão (como necessário) o interruptor para instalar, remover, limpar ou outros enfeites, então onome do arquivodo pacote no diretório atual. Então, para instalar uma das várias versões do'foobar'que foram instalados sucessivamente recentemente, digite dpkg -i foobar<TAB>e a tecla '' preencherá o restante com bashpreenchimento automático ou mostrará as versões disponíveis.
  3. If dpkgdiz que você precisa'fezban', (ou deve se livrar de'fezban'), execute a etapa 2, com'fezban'. Em seguida, tente a etapa 2 com'foobar'de novo.
  4. Repita os itens 2 e 3 até que o sistema esteja no estado desejado.

Isso pressupõe que os arquivos de pacotes necessários ainda estejam armazenados em cache localmente. Às vezes, os pacotes precisam ser procurados online. Nesse caso, o número da versão do pacote necessário pode ser um poucoincerto-- nesses casos, /var/log/dpkg.logtem a resposta, apenas grepou sedatravés dela, para o nome do pacote, e mostrará as versões dpkgcom as quais funcionou até agora.

informação relacionada