centos - repositorio - yum error-el paquete es un duplicado con
yum update (5)
Cuando intento ejecutar la yum update
en un cuadro de CentOS 6.3, recibo errores y le digo que ejecute yum check
. La salida de yum check
es:
➜ ~ yum check
Loaded plugins: fastestmirror
glibc-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-2.12-1.107.el6_4.4.x86_64
glibc-common-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-common-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 is a duplicate with glibc-devel-2.12-1.107.el6_4.4.x86_64
glibc-devel-2.12-1.107.el6_4.5.x86_64 has missing requires of glibc-headers = (''0'', ''2.12'', ''1.107.el6_4.5'')
iputils-20071127-17.el6_4.2.x86_64 is a duplicate with iputils-20071127-17.el6_4.x86_64
nspr-4.9.5-2.el6_4.x86_64 is a duplicate with nspr-4.9.2-1.el6.x86_64
nss-3.14.3-4.el6_4.x86_64 is a duplicate with nss-3.14.0.0-12.el6.x86_64
nss-softokn-3.14.3-3.el6_4.x86_64 is a duplicate with nss-softokn-3.12.9-11.el6.x86_64
nss-util-3.14.3-3.el6_4.x86_64 is a duplicate with nss-util-3.14.0.0-2.el6.x86_64
tzdata-2013g-1.el6.noarch is a duplicate with tzdata-2013c-2.el6.noarch
2:xinetd-2.3.14-39.el6_4.x86_64 is a duplicate with 2:xinetd-2.3.14-38.el6.x86_64
Error: check all
¿Alguna idea de cómo arreglar estos paquetes? Intenté yum reinstall xinetd tzdata nss-util nss-softokn nss nspr iputils glibc glibc-common glibc-devel
pero obtuve:
Error: Se han encontrado problemas con la versión multilib. Esto a menudo significa que la causa raíz es otra cosa y la comprobación de la versión multilib simplemente está indicando que hay un problema.
Así es como solucioné un servidor CentOS 7 con 471 duplicados.
Primero tuve que instalar yum utils:
yum install yum-utils
He intentado yum-complete-transaction y otras cosas sin suerte, renuncié a la transacción con:
yum-complete-transaction --cleanup-only
Luego obtuve una lista ordenada de paquetes duplicados para poder identificar versiones anteriores para eliminar el filtrado de las líneas pares e impares más adelante:
package-cleanup --dupes | sort -u > dupes.out
Entonces obtuve una lista de desinstalación de este archivo ordenado de esta manera:
cat dupes.out | grep -v ''Loaded plugins:'' | sort -u | awk ''NR % 2 == 1'' > uninstall.in
Luego eliminé de la base de datos rpm las versiones anteriores:
for f in `cat uninstall.in`; do rpm -e --nodeps -f --justdb $f; done
Finalmente pude continuar con la actualización regular del sistema:
yum upgrade
Algunas cosas para prestar atención:
- En este caso, he revisado cuidadosamente la salida de " limpieza de paquetes --dupes " para asegurarme de cómo generar la lista de desinstalación.
- He intentado un enfoque de "reinstalar el más nuevo" invirtiendo la lista ( awk ''NR% 2 == 0'' ) pero allí donde muchos paquetes ya no están disponibles en esa versión (el servidor se dejó de esta manera durante un año).
- Pensé en eliminar de rpmdb los paquetes más nuevos, por lo que la actualización posterior debería reinstalar todo, pero después de revisar los archivos instalados en el sistema de archivos, estaba claro que las nuevas versiones estaban en su lugar, con solo entradas de rpm más antiguas aún en rpmdb. Tal vez tu caso sea diferente.
Hace un par de meses también encontré este problema después de actualizar mi fedora.
También probé la limpieza de paquetes de forma práctica y comencé a eliminar las bibliotecas requeridas, lo que hizo que mi estación de trabajo no funcionara. Por suerte pude volver a instalar fedora sin borrar mi partición doméstica.
Ayer ocurrió el mismo problema y lo arreglé eliminando la versión anterior del duplicado.
Por ejemplo: tengo estos duplicados: oxygen-icon-theme-4.8.3-1.fc16.noarch es un duplicado con oxygen-icon-theme-4.8.2-1.fc16.noarch sane-backends-libs-1.0. 22-10.fc16.i686 es un duplicado con sane-backends-libs-1.0.22-8.fc16.i686
Lo que hice es usar el ''yum remove sane-backends-libs-1.0.22-8.fc16.i686'' y luego una actualización de yum.
Todo está funcionando bien.
J
Para mí, parece que reiniciaste tu computadora (o se bloqueó) mientras estabas en el proceso de actualización de paquetes. Así que se instalaron nuevos paquetes, pero no se eliminaron los paquetes antiguos.
Primero mire si tiene transacciones incompletas con: yum-complete-transaction
Si esto no ayuda, entonces eche un vistazo a la herramienta de limpieza de paquetes que es parte del paquete yum-utils.
limpieza de paquetes - las listas de paquetes duplicados
limpieza de paquetes --cleandupes elimina paquetes duplicados
Pero tenga cuidado con el comando y cree una copia de seguridad antes de eliminar los duplicados.
Pude eliminar todos los duplicados usando yum shell
:
- Primero ordené que eliminara todos los paquetes usando
remove foo-package-*
- Luego
install foo-package-3.14.1-5.i386 foo-package-3.14.1-5.x86_64
para instalar la versión anterior especificando la versión exacta.install foo-package-3.14.1-5.i386 foo-package-3.14.1-5.x86_64
- Confirmando la transacción por
run
Después de eso, los duplicados desaparecieron y pude actualizar el sistema a los paquetes actuales sin problemas y sin introducir nuevos duplicados.
Esto funciona incluso para paquetes de sistema como nss
o yum
.
yum reinstalar el paquete-más reciente-versión