Pourquoi yum n'installe-t-il pas les mises à jour?


9

Je reçois des erreurs, je pense avec coreutils, où yum ne se mettra pas à jour. Voici une sortie dépouillée de ce que je vois quand je cours 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

J'ai un autre serveur qui est (presque) identique à celui-ci (ils sont à charge équilibrée et fonctionnent à partir de la même image) et celui-là n'a pas ce même problème. Quel pourrait être le problème et comment dois-je procéder au mieux?

Mise à jour:

J'ai également exécuté yum-complete-transactioncet échec et déclaré qu'il avait renommé les fichiers de transaction. Il indique toujours qu'il y a une transaction incomplète mais maintenant cela se produit lorsque je l'exécute:

[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

Il s'arrête alors soudainement avec la Killedligne.

J'ai essayé de courir yum update --skip-brokenensuite:

[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

Puis plusieurs autres Running transaction check:s, et des Processing Dependency: coreutils =...entrées parmi d'autres willy be updated/willbe an updateentrées. Alors:

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

Dependencies Resolved

Ensuite, on me montre un tableau avec une liste de Installing:et Updating:packages, avec un résumé à la fin:

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

Il télécharge ensuite tous les packages (81/81 avec succès) et affiche finalement ceci:

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

Mise à jour 2:

J'ai aussi couru yum clean allet j'ai eu des problèmes là-bas aussi. J'ai trouvé quelques conseils pour supprimer les __db*fichiers et réessayer:

[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 ~]#

Mise à jour 3:

J'ai suivi /var/log/messageset vu beaucoup de sortie lorsque j'ai couru yum-complete-transaction, dont les deux dernières lignes étaient:

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

On peut donc supposer que cela est lié à la mémoire. Dans l'affirmative, s'agit-il d'un cas de besoin de plus de RAM, ou pourrait-il y avoir un autre problème que je dois étudier?


2
Avez-vous vérifié vos journaux système? Vous manquez peut-être de mémoire.
Michael Hampton

Oui, je viens de mettre à jour la question (mise à jour 3) avec des informations sur la mémoire, je pense que vous avez raison.
Leonard Challis

Réponses:


6

Problème similaire - et ma solution. J'ai également eu un problème de mémoire, j'ai donc dû mettre à niveau la mémoire du VPS. J'ai ensuite fait une mise à jour miam - bien sûr, j'ai les erreurs comme ci-dessus. Alors j'ai regardé l'échec, et j'ai remarqué ce qui s'est passé, c'est que Yum a installé (enfin, a commencé à installer) les dernières coreutils - version 37, alors que j'avais encore des bits de 31. Donc d'abord, j'ai supprimé la version 37, puis nettoyé puis exécuté la mise à jour yum encore.

Cela a fait que la version '31' était disponible pour être "mise à jour" proprement. Voir le travail ci-dessous:

--> 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

Courir 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!

Nettoyage en utilisant yum clean all:

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

Actualisation de la liste de packages 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!

-Souper.


10

La raison habituelle de yummourir avec Killedest que le système a manqué de mémoire.

D'après vos journaux, il semble que vous ayez une instance Amazon t1.micro, ou quelque chose de taille similaire, et sans espace de swap. Cette quantité limitée de mémoire n'est souvent pas suffisante pour effectuer un grand nombre d'installations / mises à jour de packages.

Pour résoudre le problème, soit:

  1. Arrêtez les services en cours jusqu'à ce que vous ayez suffisamment de mémoire pour terminer la transaction yum.

    Ou...

  2. Ajoutez un fichier d'échange ou échangez sur le stockage éphémère à votre instance.

Ensuite, vous devriez être en mesure de terminer vos transactions yum.


Enfin, pour nettoyer les problèmes de package de vos précédentes mises à jour ayant échoué, essayez

package-cleanup --cleandupes

avant d'effectuer d'autres mises à jour.


1
Vous pouvez également profiter de cette occasion pour passer à une instance t2.micro, qui a plus de mémoire, est généralement plus rapide et moins chère.
Michael Hampton

Merci. Il a fallu arrêter httpd mais tout a fonctionné et nettoyé après.
Leonard Challis

2

Essayez de you update --skip-brokensauter les paquets cassés (vous pourrez les traiter plus tard), probablement une bonne idée à exécuter yum clean allavant de faire quoi que ce soit.


1

Le filtrage des informations superflues que vous avez citées et à mi-chemin yumtente déjà de vous aider:

Il reste des transactions inachevées. Vous pourriez envisager de courir en yum-complete-transactionpremier pour les terminer. Le programme yum-complete-transaction se trouve dans le package yum-utils.

Avez-vous déjà essayé ça?


Oui en fait je l'ai fait. Il m'a dit qu'il ne pouvait pas terminer et avait renommé les fichiers de transaction
Leonard Challis

J'ai ajouté plus de détails à la question avec des exemples de situations où les choses échouent.
Leonard Challis

0

Essayez un

yum downgrade packagename

Je ne sais pas pourquoi mais il se met à jour, ou du moins il l'a fait pour moi avec le paquet tcpdump. Je suis passé de la version tcpdump-4.5.1-2.el7.x86_64 à tcpdump-4.7.4-1_ESG_ring.x86_64, ce que je voulais.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.