Cometi um erro terrível e apaguei duas pastas do /usr/lib
diretó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 python
diz, 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 apt
estiver bloqueado, às vezes é possível acertar as coisas manualmente com dpkg
o caminho completo do pacote em cache local. Veja como:
cd
ao local ondeapt
armazena as embalagens, nomeadamente/var/cache/apt/archives/dpkg
entã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, digitedpkg -i foobar<TAB>
e a tecla '' preencherá o restante combash
preenchimento automático ou mostrará as versões disponíveis.- If
dpkg
diz 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. - 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.log
tem a resposta, apenas grep
ou sed
através dela, para o nome do pacote, e mostrará as versões dpkg
com as quais funcionou até agora.