Cometí un terrible error y eliminé dos carpetas del /usr/lib
directorio de mi Debian. borré python2.7/
ypkgconfig/
Cosas que he intentado solucionar sin éxito:
sudo dpkg -i python2*
->"No se pudieron encontrar bibliotecas independientes de la plataforma"-->"/usr/lib/pyton2.7/py_compile.py no existe tal archivo"incluso eliminarlo (python; para reinstalar en el futuro) a través de
sudo dpkg -i python2.7-minimal
--> no puedo eliminarlo porquepython2.7-minimal depende de python2.7-minimal (>=... .deb) y python2.7 depende de python2.7-minimal (>=..._rc2.deb)
Así que no puedo reinstalarlo ni reparar los paquetes mientras no estén "configurados" por dpkg como apt-get install python
dice, pero tampoco puedo eliminarlos para una reinstalación limpia ya que dependen de diferentes versiones de dpkg y no sé cómo resolver esto.
Entonces, ¿cómo puedo eliminar completamente un paquete con todas las dependencias a través de dpkg o apt para resolver la situación descrita anteriormente?
Respuesta1
Si apt
está complicado, a veces es posible arreglar las cosas manualmente con dpkg
la ruta completa del paquete almacenado en caché local. Así es cómo:
cd
a dondeapt
se almacenan los paquetes, es decir/var/cache/apt/archivos/dpkg
entonces (según sea necesario) el interruptor para instalar, quitar, purgar o lo que sea, entonces elNombre del archivodel paquete en el directorio actual. Entonces, para instalar una de varias versiones de'foobar'que se instalaron sucesivamente recientemente, escribadpkg -i foobar<TAB>
y la tecla '' completará el resto conbash
autocompletado o mostrará las versiones disponibles.- Si
dpkg
dice que necesitas'fizban', (o debe deshacerse de'fizban'), realiza el paso n.º 2, con'fizban'. Luego prueba el paso 2 con'foobar'de nuevo. - Repita los pasos 2 y 3 hasta que el sistema esté en el estado deseado.
Eso supone que los archivos de paquetes necesarios todavía están almacenados en caché localmente. A veces es necesario buscar los paquetes en línea. En cuyo caso el número de versión del paquete necesario podría ser algoincierto- en tales casos, /var/log/dpkg.log
tiene la respuesta, simplemente grep
o sed
a través de ella, para el nombre del paquete, y mostrará las versiones dpkg
con las que ha funcionado hasta el momento.