¿Por qué yum no instala actualizaciones?

9

Recibo errores, creo que con coreutils, donde yum no se actualizará. Aquí hay una salida reducida de lo que veo cuando ejecuto yum update:

Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package PyYAML.x86_64 0:3.10-3.el6 will be updated
---> Package PyYAML.x86_64 0:3.10-3.1.el6 will be an update
... more of the same, and then:
--> Processing Dependency: coreutils = 8.4-31.el6_5.2 for package: coreutils-libs-8.4-31.el6_5.2.x86_64
---> Package coreutils.x86_64 0:8.4-37.el6 will be an update
... then more of the same    --> Finished Dependency Resolution
--> Running transaction check
---> Package coreutils.x86_64 0:8.4-31.el6_5.2 will be updated
--> Processing Dependency: coreutils = 8.4-31.el6_5.2 for package: coreutils-libs-8.4-31.el6_5.2.x86_64
---> Package kernel.x86_64 0:2.6.32-431.17.1.el6 will be erased
--> Finished Dependency Resolution
Error: Package: coreutils-libs-8.4-31.el6_5.2.x86_64 (@updates)
           Requires: coreutils = 8.4-31.el6_5.2
           Removing: coreutils-8.4-31.el6_5.2.x86_64 (@updates)
               coreutils = 8.4-31.el6_5.2
           Updated By: coreutils-8.4-37.el6.x86_64 (base)
               coreutils = 8.4-37.el6
 You could try using --skip-broken to work around the problem
** Found 71 pre-existing rpmdb problem(s), 'yum check' output follows:
audit-libs-2.3.7-5.el6.x86_64 is a duplicate with audit-libs-2.2-4.el6_5.x86_64
audit-libs-python-2.3.7-5.el6.x86_64 is a duplicate with audit-libs-python-2.2-4.el6_5.x86_64
... then lots more like the above duplicate

Tengo otro servidor que es (casi) idéntico a este (tienen equilibrio de carga y funcionan desde la misma imagen) y ese no tiene el mismo problema. ¿Cuál podría ser el problema y cómo debería proceder mejor?

Actualizar:

También ejecuté yum-complete-transactionque falló y dije que había cambiado el nombre de los archivos de transacción. Todavía dice que hay una transacción incompleta, pero ahora esto sucede cuando la ejecuto:

[root@nico ~]# yum-complete-transaction
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * webtatic: uk.repo.webtatic.com
drivesrvr                                                                                                                                                                                                                                |  951 B     00:00
There are 1 outstanding transactions to complete. Finishing the most recent one
The remaining transaction had 252 elements left to run
... lots of:
Package name-1.23.x8x_64 already installed and latest version
...
--> Running transaction check
... lots of entries like this:
---> Package PyYAML.x86_64 0:3.10-3.el6 will be updated
... and this:
---> Package PyYAML.x86_64 0:3.10-3.1.el6 will be an update
... and this:
---> Package audit-libs.x86_64 0:2.2-4.el6_5 will be erased
Killed

Luego, de repente se detiene con la Killedlínea.

Intenté correr a yum update --skip-brokencontinuación:

[root@nico ~]# yum update --skip-broken
Freeing read locks for locker 0x7d: 28940/139976145426176
Freeing read locks for locker 0x7f: 28940/139976145426176
Freeing read locks for locker 0x80: 28940/139976145426176
Freeing read locks for locker 0x81: 28940/139976145426176
Freeing read locks for locker 0x82: 28940/139976145426176
Loaded plugins: downloadonly, fastestmirror, replace
Setting up Update Process
Loading mirror speeds from cached hostfile
 * webtatic: uk.repo.webtatic.com
drivesrvr                                                                                                                                                                                                                                |  951 B     00:00
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
--> Running transaction check
... lots of will be updated/will be an update/etc, then:
--> Processing Dependency: coreutils = 8.4-31.el6_5.2 for package: coreutils-libs-8.4-31.el6_5.2.x86_64

Luego varios Running transaction check:s más , y Processing Dependency: coreutils =...entradas entre más willy be updated/willbe an updateentradas. Entonces:

Packages skipped because of dependency problems:
    coreutils-8.4-37.el6.x86_64 from base

Dependencies Resolved

Entonces me mostraron una mesa con una lista de Installing:y Updating:paquetes, con un resumen al final:

Install       2 Package(s)
Upgrade      79 Package(s)
Remove        1 Package(s)

Luego descarga todos los paquetes (81/81 con éxito) y finalmente muestra esto:

Total                                                                                                                                                                                                                           3.0 MB/s | 115 MB     00:37
Running rpm_check_debug
Killed

Actualización 2:

También corrí yum clean ally tuve algunos problemas allí también. Encontré algunos consejos para eliminar los __db*archivos y volver a intentarlo:

[root@nico ~]# yum clean all
rpmdb: Thread/process 29404/139880514733824 failed: Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 -  (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed
[root@nico ~]# rm -f /var/lib/rpm/__db*
[root@nico ~]# yum clean all
Loaded plugins: downloadonly, fastestmirror, replace
Cleaning repos: base drivesrvr epel extras ius newrelic percona-release-noarch percona-release-x86_64 rackspace updates webtatic
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@nico ~]# yum clean all
Loaded plugins: downloadonly, fastestmirror, replace
Cleaning repos: base drivesrvr epel extras ius newrelic percona-release-noarch percona-release-x86_64 rackspace updates webtatic
Cleaning up Everything
[root@nico ~]#

Actualización 3:

Seguí /var/log/messagesy vi una gran cantidad de resultados cuando corrí yum-complete-transaction, las dos últimas líneas fueron:

Nov 14 08:19:47 nico kernel: Out of memory: Kill process 30995 (yum-complete-tr) score 149 or sacrifice child
Nov 14 08:19:47 nico kernel: Killed process 30995, UID 0, (yum-complete-tr) total-vm:641952kB, anon-rss:181420kB, file-rss:4kB

Entonces, presumiblemente, esto sugiere que está relacionado con la memoria. Si es así, ¿es este un caso de necesitar más RAM o podría haber otro problema que deba investigar?

Leonard Challis
fuente
2
¿Revisaste los registros de tu sistema? Puede que te estés quedando sin memoria.
Michael Hampton
Sí, acabo de actualizar la pregunta (actualización 3) con información de memoria, creo que tienes razón.
Leonard Challis

Respuestas:

6

Problema similar, y mi solución. También tuve un problema con la memoria, así que tuve que actualizar la memoria del VPS. Luego realicé una actualización yum, por supuesto, obtuve los errores como se indica arriba. Así que miré el error y noté que lo que sucedió fue que Yum instaló (bueno, comenzó a instalar) los últimos coreutils - versión 37, mientras que todavía tenía bits de 31. Entonces, primero eliminé la versión 37, luego la limpié y luego ejecuté la actualización de yum de nuevo.

Eso hizo que la versión '31' estuviera disponible para ser "actualizada" limpiamente. Vea el trabajo a continuación:

--> Running transaction check
---> Package coreutils.x86_64 0:8.4-31.el6_5.2 will be updated
--> Processing Dependency: coreutils = 8.4-31.el6_5.2 for package: coreutils-libs-8.4-31.el6_5.2.x86_64
---> Package coreutils.x86_64 0:8.4-37.el6 will be an update
--> Finished Dependency Resolution
Error: Package: coreutils-libs-8.4-31.el6_5.2.x86_64 (@updates)
           Requires: coreutils = 8.4-31.el6_5.2
           Removing: coreutils-8.4-31.el6_5.2.x86_64 (@updates)
               coreutils = 8.4-31.el6_5.2
           Updated By: coreutils-8.4-37.el6.x86_64 (base)
               coreutils = 8.4-37.el6
 You could try using --skip-broken to work around the problem

Corriendo yum remove coreutils-libs-8.4-37.el6.x86_64:

Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package coreutils-libs.x86_64 0:8.4-37.el6 will be erased
--> Finished Dependency Resolution

Dependencies Resolved
==============================
========================================================================================

Package                         Arch                    Version                    Repository                  Size
======================================================================================================================
Removing:
 coreutils-libs                  x86_64                  8.4-37.el6                  installed                  5.4 k

Transaction Summary
======================================================================================================================
Remove        1 Package(s)

Installed size: 5.4 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing    : coreutils-libs-8.4-37.el6.x86_64                                                                   1/1 
  Verifying  : coreutils-libs-8.4-37.el6.x86_64                                                                   1/1 

Removed:
  coreutils-libs.x86_64 0:8.4-37.el6                                                                                  

Complete!

Limpieza usando yum clean all:

Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors

Haciendo la actualización de la lista de paquetes yum update:

Loaded plugins: fastestmirror
Setting up Update Process
Determining fastest mirrors
 * base: mirrors.lga7.us.voxel.net
 * extras: mirrors.lga7.us.voxel.net
 * updates: mirror.cc.columbia.edu
base                                                                                           | 3.7 kB     00:00     
base/primary_db                                                                                | 4.6 MB     00:00     
extras                                                                                         | 3.4 kB     00:00     
extras/primary_db                                                                              |  30 kB     00:00     
updates                                                                                        | 3.4 kB     00:00     
updates/primary_db                                                                             | 1.5 MB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package coreutils.x86_64 0:8.4-31.el6_5.2 will be updated
---> Package coreutils.x86_64 0:8.4-37.el6 will be an update
---> Package coreutils-libs.x86_64 0:8.4-31.el6_5.2 will be updated
---> Package coreutils-libs.x86_64 0:8.4-37.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================
 Package                          Arch                     Version                       Repository              Size
======================================================================================================================
Updating:
 coreutils                        x86_64                   8.4-37.el6                    base                   3.0 M
 coreutils-libs                   x86_64                   8.4-37.el6                    base                    50 k

Transaction Summary
======================================================================================================================
Upgrade       2 Package(s)

Total download size: 3.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): coreutils-8.4-37.el6.x86_64.rpm                                                         | 3.0 MB     00:00     
(2/2): coreutils-libs-8.4-37.el6.x86_64.rpm                                                    |  50 kB     00:00     
----------------------------------------------------------------------------------------------------------------------
Total                                                                                  44 MB/s | 3.1 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : coreutils-libs-8.4-37.el6.x86_64                                                                   1/4 
  Updating   : coreutils-8.4-37.el6.x86_64                                                                        2/4 
  Cleanup    : coreutils-libs-8.4-31.el6_5.2.x86_64                                                               3/4 
  Cleanup    : coreutils-8.4-31.el6_5.2.x86_64                                                                    4/4 
  Verifying  : coreutils-8.4-37.el6.x86_64                                                                        1/4 
  Verifying  : coreutils-libs-8.4-37.el6.x86_64                                                                   2/4 
  Verifying  : coreutils-libs-8.4-31.el6_5.2.x86_64                                                               3/4 
  Verifying  : coreutils-8.4-31.el6_5.2.x86_64                                                                    4/4 

Updated:
  coreutils.x86_64 0:8.4-37.el6                           coreutils-libs.x86_64 0:8.4-37.el6                          

Complete!

-Cenar.

Juan
fuente
10

La razón habitual para yummorir Killedes que el sistema se quedó sin memoria.

Desde sus registros, parece que tiene una instancia de Amazon t1.micro, o algo de tamaño similar, y sin ningún espacio de intercambio. Esta cantidad restringida de memoria a menudo no es suficiente para completar una gran cantidad de instalaciones / actualizaciones de paquetes.

Para resolver el problema, ya sea:

  1. Cierre los servicios en ejecución hasta que tenga suficiente memoria para completar la transacción yum.

    O...

  2. Agregue un archivo de intercambio o intercambio de almacenamiento efímero a su instancia.

Entonces deberías poder completar tus transacciones de yum.


Finalmente, para limpiar los problemas de su paquete de sus actualizaciones fallidas anteriores, intente

package-cleanup --cleandupes

antes de realizar otras actualizaciones.

Michael Hampton
fuente
1
También puede aprovechar esta oportunidad para cambiar a una instancia t2.micro, que tiene más memoria, generalmente es más rápida y más barata.
Michael Hampton
Gracias. Tomó detener httpd, pero todo funcionó y también se limpió después.
Leonard Challis
2

Intente you update --skip-brokenque omita los paquetes rotos (puede lidiar con ellos más tarde), probablemente sea una buena idea ejecutar yum clean allantes de hacer nada.

alexus
fuente
1

Filtrar la información extraña que citó y a la mitad yumya intenta ayudarlo:

Hay transacciones pendientes sin terminar. Podría considerar correr yum-complete-transactionprimero para terminarlos. El programa yum-complete-transaction se encuentra en el paquete yum-utils.

¿Ya lo intentaste?

HBruijn
fuente
Sí, en realidad lo hice. Me dijo que no podía completar y había cambiado el nombre de los archivos de transacción
Leonard Challis,
He agregado más detalles a la pregunta con ejemplos de cuando las cosas están fallando.
Leonard Challis
0

Prueba un

yum downgrade packagename

No estoy seguro de por qué, pero se actualiza, o al menos lo hizo para mí con el paquete tcpdump. Pasé de la versión tcpdump-4.5.1-2.el7.x86_64 a tcpdump-4.7.4-1_ESG_ring.x86_64, que es lo que quería.

hokie1999
fuente