No se pueden instalar actualizaciones a través del administrador de actualizaciones / apt-get upgrade

12

He estado ejecutando Ubuntu 12.04 durante las últimas semanas. Recientemente intenté descargar e instalar algunos archivos a través del Administrador de actualizaciones. Localizó algunos archivos, los descargó, pero luego no pudo instalarlos. Dio el error:

installArchives() failed: (Reading database ... 
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error

Intenté usar apt-get upgradepero se produjo un error similar:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless
  openjdk-6-jre-lib
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/34.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

Cualquier ayuda sería muy apreciada. Gracias por adelantado.

Editar: Aquí hay información adicional que puede ser útil. Mi problema original era que el Centro de software de Ubuntu no se abriría. Descubrí que Update Manager y Synaptic Package Manager tampoco se abrieron. Todos dieron un error en la línea de:

"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"

Después de buscar mucho en Google, pareció solucionar ese problema ya que los administradores de paquetes se abrirían nuevamente. Cuando intenté descargar e instalar cualquier actualización desde el Administrador de actualizaciones, recibí el error al comienzo de esta publicación.

usuario64654
fuente
¿Qué archivos has descargado? ¿De donde? ¿Qué tiene que ver el administrador de actualizaciones?
mikewhatever
Puede intentar desinstalar (y luego reinstalar) el paquete en el mensaje. Si eso falla, puede intentar borrar el caché.
John S Gruber
Todavía estoy trabajando para solucionar esto, pero aún no he tenido la oportunidad. Voy a intentar las instrucciones dadas aquí: goo.gl/oOKqG cuando tenga la oportunidad.
user64654
¿Por qué elegiste instalar 12.04 y no 14.04? Después de todo, dijiste que lo obtuviste hace un par de semanas, y Trusty ha estado fuera durante unos nueve meses.
John Scott

Respuestas:

16

He solucionado el problema con estas instrucciones .

Entonces la solución es la siguiente:

  1. Ir al /var/lib/dpkgdirectorio
  2. Haga una copia de seguridad del statusarchivo
  3. Edite el statusarchivo
  4. Busque el paquete que le dio el error
  5. Simplemente elimine las líneas de este paquete (pero deje que todas las demás líneas que conciernen a otros paquetes incluso si contienen el paquete roto en sus campos "Reemplazar" o "Depende")

    [...]

  6. Guardar cambios en el statusarchivo

  7. Correr: sudo dpkg --configure -a
  8. Fuerce la reinstalación de las dependencias faltantes (porque ahora hay algunas):

    sudo apt-get -f install
    

    Creo que si el paquete roto no depende de ningún otro paquete (podría ser raro), simplemente vuelva a instalarlo:

    sudo apt-get install the_package
    
  9. ¡Todo está bien ahora, puede actualizar, actualizar o instalar nuevos paquetes!

Cabe señalar que tuve algunas diferencias con la solución dada allí. El archivo de estado no fue fácil de editar (ya que es un archivo importante y nunca fue editado). Cualquier edición realizada allí debe hacerse con cuidado, y se debe hacer una copia de seguridad del archivo antes de realizar cualquier cambio.

Tuve que repetir los pasos 4-8 tres veces (cada vez que el error sería el mismo solo con un paquete diferente). Finalmente, cuando se eliminaron todos los paquetes, pude reinstalarlos y solucionó mi problema.

usuario64654
fuente
¿Cómo encontró qué paquetes causaron el error?
Seanny123
@ Seanny123 el intento anterior de instalar apt-get presumiblemente estaría mostrando el error. Por ejemplo, en mi caso tengo "lectura de la lista de archivos para el paquete 'manpages-dev': error de entrada / salida" justo antes de que volviera el mensaje. En el archivo de estado, busqué "Package: manpages-dev" y eliminé las líneas hasta la siguiente línea "Package:". Después de eso, tuve que hacer un manual "apt-get install manpages-dev" y luego mi "apt-get dist-upgrade", que falló anteriormente, se completó sin errores. (¡Gracias usuario64654!)
Peter Hansen
2

Puede suceder que el disco esté dañado con inodes.

Con un CD en vivo, ejecute este comando

sudo fdisk -l

tenga en cuenta el disco y la partición, entonces podría /dev/dsb1 repararlo:

sudo fsck -y /dev/sdb1

Reiniciar y volver al sistema

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade
Guillaume
fuente
Hice el fsck vía sudo shutdown -rF nowy, sin nada más, todo estuvo bien nuevamente.
Klaws