Esse é um deslize hilariante dos dedos; Sempre gosto de usar sudo echo /path/to/files/*glob*
para ver quais arquivos especificamente estou prestes a excluir antes de alterar o echo
para rm
. Agora você aprendeu a lição também! Diversão.
Pregação à parte, isso não deve ser muito difícil de consertar, mas levará alguns "passes". deb
packages são ar(1)
packages e podem ser facilmente manipulados com ar(1)
:
$ ar xv /var/cache/apt/archives/python-papyon_0.5.5-1ubuntu1.3_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
Tente isto:
mkdir /tmp/fixing_python
cd /tmp/fixing_python
ar xv /var/cache/apt/archives/<package_for_overwriting>
cd /
tar zxvf /tmp/fixing_python/data.tar.gz
Iterar para cada pacote que você precisa "consertar". A opção de linha de comando debsums(1)
-c
pode ser útil se você tiver debsums(1)
instalado.
Note que o comando tar
é um pouco "destrutivo" - ele sobrescreverá o que for necessário. Se você preferir ver o que tudo irá descompactar, pule a etapa cd /
de antemão e tar(1)
irá descompactar no diretório, dando a você a chance de ver o que é feito.
Uma vez que você tenha tudo descompactado que você precisa, eu tentaria arrancar dpkg(1)
"feliz" novamente através de seus próprios mecanismos. (O control.tar.gz
contém scripts de controle que são executados em upgrades, instalações, desinstalações, etc. Acabei de pular todos eles, pensando que uma vez que o Python tenha sido reinstalado, você pode use dkpg(1)
para corrigir os problemas.)
Certamente temos pacotes diferentes instalados, mas isso pode ser útil para descobrir quais pacotes precisam ser corrigidos:
$ dpkg -S /usr/bin/python*
python-minimal: /usr/bin/python
python2.6-minimal: /usr/bin/python2.6
python2.7-minimal: /usr/bin/python2.7
python3-minimal: /usr/bin/python3
python3.2-minimal: /usr/bin/python3.2
python3.2-minimal: /usr/bin/python3.2mu
$
E observe que você pode extrair pacotes diretamente dos arquivos sem usar apt-get(8)
. Eles são apenas sites HTTP e link ou link facilitará a obtenção dos pacotes necessários com wget(1)
ou curl(1)
.
Atualizar
Ah, sim, observe que /usr/lib/python*
é onde as bibliotecas e módulos do Python são mantidos. /usr/bin/python*
é onde o interpretador Python é mantido. Sua tentativa de consertar as coisas com cp /usr/lib/python2.7 /usr/bin/python2.7
não ajudou. Também /usr/lib/python2.7
é um diretório , mas /usr/bin/python
deve ser (e foi) um único arquivo executável. Sinta-se à vontade para rm -r /usr/bin/python2.7 /usr/bin/python
.