Perché yum non installa gli aggiornamenti?


9

Ricevo errori, penso con coreutils, dove yum non si aggiorna. Ecco un output ridotto di quello che vedo quando corro 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

Ho un altro server che è (quasi) identico a questo (sono bilanciati in base al carico e funzionano dalla stessa immagine) e quello non ha questo stesso problema. Quale potrebbe essere il problema e come devo procedere al meglio?

Aggiornare:

Ho anche eseguito yum-complete-transactionquesto errore e ho detto che aveva rinominato i file delle transazioni. Dice ancora che c'è una transazione incompleta ma ora questo succede quando lo eseguo:

[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

Quindi si interrompe improvvisamente con la Killedlinea.

Ho provato a correre yum update --skip-brokendopo:

[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

Quindi diverse altre Running transaction check:e Processing Dependency: coreutils =...voci tra più willy be updated/willbe an updatevoci. Poi:

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

Dependencies Resolved

Quindi mi viene mostrata una tabella con un elenco di Installing:e Updating:pacchetti, con un riepilogo alla fine:

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

Quindi scarica tutti i pacchetti (81/81 correttamente) e infine mostra questo:

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

Aggiornamento 2:

Ho anche corso yum clean alle ho avuto dei problemi anche lì. Ho trovato alcuni consigli per rimuovere i __db*file e riprovare:

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

Aggiornamento 3:

Ho /var/log/messageseseguito yum-complete-transactionla coda e ho visto un sacco di output mentre correvo , le ultime due righe erano:

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

Quindi presumibilmente questo suggerisce che è legato alla memoria. In tal caso, si tratta di un caso in cui è necessaria più RAM o potrebbe esserci un altro problema che devo esaminare?


2
Hai controllato i log di sistema? La memoria potrebbe essere esaurita.
Michael Hampton,

Sì, ho appena aggiornato la domanda (aggiornamento 3) con le informazioni sulla memoria, penso che tu abbia ragione.
Leonard Challis,

Risposte:


6

Problema simile - e la mia correzione. Ho avuto anche un problema con la memoria, quindi ho dovuto aggiornare la memoria del VPS. Ho quindi fatto un aggiornamento yum - ovviamente ho ricevuto gli errori come sopra. Quindi ho guardato al fallimento e ho notato che cosa è successo è stato che Yum ha installato (beh, ha iniziato a installare) gli ultimi coreutils - versione 37, mentre avevo ancora pezzi di 31. Quindi prima ho rimosso la versione 37, quindi pulito e poi eseguito l'aggiornamento yum ancora.

Ciò ha reso la versione "31" disponibile per essere "aggiornata" in modo pulito. Vedi i lavori di seguito:

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

In esecuzione 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!

Pulendo usando yum clean all:

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

Fare l'aggiornamento dell'elenco dei pacchetti 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!

-Sup.


10

Il solito motivo per yummorire Killedè che il sistema ha esaurito la memoria.

Dai tuoi registri sembra che tu abbia un'istanza di Amazon t1.micro, o qualcosa di simile, e senza spazio di scambio. Questa quantità limitata di memoria spesso non è sufficiente per completare un gran numero di installazioni / aggiornamenti di pacchetti.

Per risolvere il problema:

  1. Chiudere i servizi in esecuzione fino a quando non si dispone di memoria sufficiente per completare la transazione yum.

    O...

  2. Aggiungi un file di scambio o scambia su memoria temporanea alla tua istanza.

Quindi dovresti essere in grado di completare le tue transazioni yum.


Infine, per eliminare i problemi del pacchetto dai precedenti aggiornamenti non riusciti, provare

package-cleanup --cleandupes

prima di eseguire altri aggiornamenti.


1
Potresti anche cogliere l'occasione per passare a un'istanza t2.micro, che ha più memoria, di solito è più veloce ed è più economica.
Michael Hampton,

Grazie. È stato necessario arrestare httpd, ma ha funzionato e dopo aver ripulito.
Leonard Challis,

2

Prova you update --skip-brokenche salterà i pacchetti rotti (puoi gestirli in seguito), probabilmente è una buona idea eseguire yum clean allprima di fare qualsiasi cosa.


1

Filtrare le informazioni estranee che hai citato e a metà strada yumgià prova ad aiutarti:

Rimangono transazioni non finite. Potresti considerare di correre yum-complete-transactionprima per finirli. Il programma yum-complete-transazione si trova nel pacchetto yum-utils.

Ci hai già provato?


Sì, in realtà l'ho fatto. Mi disse che non poteva essere completato e aveva rinominato i file delle transazioni
Leonard Challis,

Ho aggiunto ulteriori dettagli alla domanda con esempi di quando le cose non vanno a buon fine.
Leonard Challis,

0

Prova a

yum downgrade nomepacchetto

Non so perché ma si aggiorna, o almeno lo ha fatto per me con il pacchetto tcpdump. Sono passato dalla versione tcpdump-4.5.1-2.el7.x86_64 a tcpdump-4.7.4-1_ESG_ring.x86_64 che è quello che volevo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.