Forzar reparación de dpkg

Forzar reparación de dpkg

Cometí un terrible error y eliminé dos carpetas del /usr/libdirectorio 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 pythondice, 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 aptestá complicado, a veces es posible arreglar las cosas manualmente con dpkgla ruta completa del paquete almacenado en caché local. Así es cómo:

  1. cda donde aptse almacenan los paquetes, es decir/var/cache/apt/archivos/
  2. dpkgentonces (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, escriba dpkg -i foobar<TAB>y la tecla '' completará el resto con bashautocompletado o mostrará las versiones disponibles.
  3. Si dpkgdice que necesitas'fizban', (o debe deshacerse de'fizban'), realiza el paso n.º 2, con'fizban'. Luego prueba el paso 2 con'foobar'de nuevo.
  4. 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.logtiene la respuesta, simplemente grepo seda través de ella, para el nombre del paquete, y mostrará las versiones dpkgcon las que ha funcionado hasta el momento.

información relacionada