dpkg no se actualizará – error de entrada / salida en el indicador de sesión

He estado teniendo un error al intentar actualizar mi sistema. Actualmente no puedo instalar / eliminar o actualizar nada con apt-get …

Aquí está el error que recibo al ejecutar apt-get update

dpkg: unrecoverable fatal error, aborting: reading files list for package 'indicator-session': Input/output error E: Sub-process /usr/bin/dpkg returned an error code (2) 

Ok, miré un poco más y encontré una solución: está en este post: No se puede instalar ninguna actualización a través de update manager / apt-get upgrade

Hay un enlace en la respuesta a esta página: http://ubuntuforums.org/archive/index.php/t-1232143.html

Todo se reduce a editar el archivo / var / lib / dpkg / status y eliminar todo lo relacionado con el paquete roto.

¡Mi sistema está funcionando nuevamente!

Aquí está la salida que obtuve de apt-get :

 dpkg: warning: files list file for package `libecryptfs0' missing, assuming package has no files currently installed. dpkg: warning: files list file for package `libplexus-containers1.5-java' missing, assuming package has no files currently installed. dpkg: warning: files list file for package `apport' missing, assuming package has no files currently installed. 

Y así es como lo arreglé:

  1. Copia de seguridad del archivo de estado dpkg:

     cp /var/lib/dpkg/status{,.backup} 
  2. Edite el archivo de /var/lib/dpkg/status status¹ y elimine las secciones de los paquetes sobre las que se apt-get imprimir las advertencias. Asegúrese de eliminar toda la sección sobre estos paquetes, es decir, comience con la línea Package: libecryptfs0 hasta la primera línea en blanco.

    Alternativamente, puedes usar sed para hacer el trabajo por ti:

     sed -i.backup -e '/^Package: \(libecryptfs0\|libplexus-containers1\.5-java\|apport\)$/,/^$/d' /var/lib/dpkg/status 

    Este comando elimina todas las secciones entre e incluyen las líneas con el Package: y la siguiente línea vacía. Puede colocar cualquier nombre de paquete válido entre los paréntesis \(…\) , delimítelos con \| , y escapar de los puntos ( .\. ). La opción -i.backup edita el archivo en su lugar y crea un archivo de respaldo con el sufijo de .backup (para que pueda omitir el paso 1 si usa la variante) en lugar de escribir el resultado en la .backup .

  3. Ejecute sudo apt-get -f install para configurar paquetes no configurados y (re) instale el paquete faltante. Faltan los paquetes porque los eliminamos del archivo de status .

¹ Ver ¿Cómo obtengo permisos para editar archivos de configuración del sistema? para cómo hacer eso.