¿Cómo soluciono un error de "Problema con MergeList" o "no se pudo analizar el archivo de estado" cuando intento hacer una actualización?

342

La computadora me dio esta salida en una ventana:

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

¿Cómo puedo solucionar esto?

    
pregunta Braiam 12.03.2011 - 18:13

8 respuestas

473

Estos comandos de terminal deberían resolver su problema:

Primero elimine la Lista de fusión abriendo una terminal (Presione Ctrl + Alt + T para iniciar) y ejecute este comando *:

sudo rm -vf /var/lib/apt/lists/*

A continuación, genere uno nuevo ejecutando una actualización simple:

sudo apt-get update

Aquí está el informe de errores (y otro ) para este problema, que ahora está corregido, por lo que no debería crear nuevos archivos mal formados, sin embargo, si ya tiene los archivos mal formados que necesita para eliminarlos como se explica en esta publicación.

* Las opciones utilizadas para rm son -v verbose

  

-v, --verbose                 explicar lo que se está haciendo

y -f force

  

-f, --force                 ignore los archivos y argumentos inexistentes, nunca solicite

Si alguna vez no está seguro acerca de una línea de comando o las opciones que se usan, siempre consulte la página de manual para obtener el comando. Se puede acceder a estos en Internet buscando hombre y el comando por ejemplo man rm o puede acceder a la misma información escribiendo exactamente el mismo comando en la terminal, por ejemplo, man rm las instrucciones para salir de la página estarán en la parte inferior de la terminal como esta

    
respondido por el Allan 13.03.2011 - 17:53
80

Abra una Terminal y ejecute los siguientes comandos uno a la vez:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

Ver también:

respondido por el tommyk 08.02.2011 - 19:37
23

Lo arruinaste cuando editaste /var/lib/dpkg/status . Restaure desde la copia de seguridad que hizo antes de editarlo. Por supuesto, hiciste una copia de seguridad, ¿verdad?

Como no hizo una copia de seguridad, edítela nuevamente, cuidadosamente . Intenta no causar más daño.

Puedes usar /var/lib/dpkg/status.old como punto de referencia. Esta es una copia de seguridad del archivo status de antes de la última vez que se ejecutó dpkg . Ejecutar

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

para ver las diferencias. Deshaga los cambios que realizó manualmente y mantenga los cambios realizados por el último dpkg ejecutado.

Si realmente no logras reparar el archivo, copia /var/lib/dpkg/status.old sobre /var/lib/dpkg/status . Obtendrá una base de datos de paquetes bien formada pero desactualizada.

No es necesario editar /var/lib/dpkg/status en funcionamiento normal. Incluso cuando las cosas van muy mal, /var/lib/dpkg/status no es algo que tienda a requerir la intervención del administrador. Sean cuales sean sus problemas con crossplatformui , probablemente haya una mejor manera de resolverlos. La única vez que necesité editar /var/lib/dpkg/status fue cuando se rompió un archivo Packages en sentido ascendente.

    
respondido por el Gilles 13.05.2012 - 17:37
18

Lo hice

sudo apt-get clean
sudo apt-get update

y funcionó.

    
respondido por el psychok7 31.07.2012 - 15:34
16

Siguiendo los pasos 2 a 5 en el Procedimiento de solución de problemas de Package Manager generalmente se resuelve este problema.

Para paso 2 , deshabilite todos su PPAs. Puede desmarcar todos ellos en Fuentes de software de la misma forma en que eliminaría solo uno; consulte Cómo deshabilitar un PPA en particular? . Puede volver a habilitarlos más tarde.

Para paso 3 , cierre todos los programas abiertos que pueda. Probablemente sea seguro mantener abierto su navegador web para que tenga sus instrucciones frente a usted. Pero es particularmente importante asegurarse de que los administradores de paquetes no estén ejecutando . Esto incluye el Centro de software, el Actualizador de software (Administrador de actualizaciones en versiones anteriores de Ubuntu), Synaptic y Gdebi. También incluye utilidades de administración de paquetes de línea de comandos como apt-get , dpkg y aptitude .

Tenga en cuenta que si otros usuarios inician sesión al mismo tiempo, deben cerrar la sesión si es posible.

Para paso 4 , abra una ventana de terminal. Una forma de hacerlo que funcione independientemente del entorno de escritorio que utilice es presionar Ctrl + Alt + T .

Para paso 5 , ejecute estos comandos en la ventana del terminal:

ubuntu-support-status
sudo grep -R proxy /etc/apt/*
grep proxy  /etc/environment
echo $http_proxy
echo $ftp_proxy
grep proxy /etc/bash.bashrc
grep proxy ~/.bashrc
cat /etc/apt/apt.conf
sudo fuser -vvv /var/lib/dpkg/lock
sudo fuser -vvv /var/cache/apt/archives/lock
cat /etc/lsb-release
uname -a
sudo rm /var/lib/apt/lists/lock 
sudo rm  /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status  ||  sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status
sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000
sudo dpkg --configure -a
sudo dpkg --clear-avail
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade
find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n\n"; cat -n ""' _ '{}' \;

Copié eso textualmente de PackageManagementTroubleshoootingProcedure el 2 de marzo de 2014. Esos comandos han evolucionado en el pasado y los comandos recomendados en ese artículo puede cambiarse o expandirse nuevamente en el futuro . Así que es posible que desee trabajar desde paso 5 allí . (Ese artículo, creado / editado por "Colaboradores de la wiki de documentación de Ubuntu" - especialmente Mark Rijckenberg --es CC-BY-SA con licencia 3.0 , que permite la inclusión aquí con la atribución adecuada.)

Algunos de esos comandos intentan solucionar el problema (y también pueden mostrar información de diagnóstico); otros muestran información valiosa sobre el problema que puede incluir en su pregunta o proporcionar a alguien que lo ayude. (O, según sus habilidades, puede habilitar usted para diagnosticarlo y resolverlo).

A menudo, esto lo soluciona, pero cuando no lo hace, a menudo proporciona suficiente información para solucionarlo.

No tiene que escribir manualmente esos comandos; puedes copiarlos y pegarlos. Sin embargo, recomiendo pegar y ejecutar cada uno por separado. Esto hace que quede más claro qué salida es qué comandos.

    
respondido por el Eliah Kagan 28.11.2011 - 03:36
11

También he visto este problema cuando tienes demasiadas fuentes en tus repositorios.

Pruebe la solución publicada arriba y / o quizás esto que a veces se recomienda en la plataforma de lanzamiento:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Déjanos saber cómo te va.

    
respondido por el andybleaden 08.05.2011 - 12:19
4

Me encontré con un error similar:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

Seguí sugerencias similares para copiar status-old .

$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old

Todos mis archivos de estado estaban en blanco por alguna razón. Afortunadamente, descubrí que hay copias de seguridad de estos archivos:

$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20  2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16  2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14  2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11  2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  94583 Sep 11  2013 /var/backups/dpkg.status.6.gz

Revisé la última copia de seguridad ...

$ head /var/backups/dpkg.status.0

... pero todavía estaba en blanco. Así que descomprimí uno más antiguo ...

$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1

Esta vez hubo contenido. Así que lo copié ...

$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status

Entonces apt-get update se ejecutó sin problemas.

El crédito va a esta publicación.

    
respondido por el Andrew 12.04.2014 - 00:43
3

Tuve el mismo problema e intenté con todas las soluciones de problemas mencionadas en otras respuestas. Extrañamente, la única solución fue un paso diferente:

  • Ir a Software & amp; actualizaciones - & gt; Software Ubuntu - & gt; Descargar desde - & gt; Otro- & gt; Seleccionar el mejor servidor

  • Espera las pruebas. Al final de las pruebas, se seleccionará el mejor servidor, no necesariamente el servidor más cercano ni el servidor principal ni el servidor de su localidad.

  • Ahora vuelve a cargar los datos Repo, terminará correctamente.

respondido por el Muhammad El Nakeep 11.11.2015 - 05:12

Lea otras preguntas en las etiquetas