Warum werden keine Updates installiert?

9

Ich bekomme Fehler, denke ich bei Coreutils, bei denen yum nicht aktualisiert wird. Hier ist eine abgespeckte Ausgabe von dem, was ich beim Ausführen sehe 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

Ich habe einen anderen Server, der (fast) identisch mit diesem ist (sie sind lastausgeglichen und arbeiten mit demselben Image) und dieser hat nicht das gleiche Problem. Was könnte das Problem sein und wie soll ich am besten vorgehen?

Aktualisieren:

Ich habe auch ausgeführt, yum-complete-transactiondass fehlgeschlagen ist und sagte, dass es die Transaktionsdateien umbenannt hat. Es wird immer noch angezeigt, dass eine Transaktion unvollständig ist, aber jetzt geschieht dies, wenn ich sie ausführe:

[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

Es hört dann plötzlich mit der KilledLinie auf.

Ich habe versucht, als yum update --skip-brokennächstes zu laufen :

[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

Dann mehrere weitere Running transaction check:s und Processing Dependency: coreutils =...Einträge unter weiteren willy be updated/willbe an updateEinträgen. Dann:

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

Dependencies Resolved

Dann wird mir eine Tabelle mit einer Liste Installing:und Updating:Paketen mit einer Zusammenfassung am Ende angezeigt :

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

Anschließend werden alle Pakete heruntergeladen (81/81 erfolgreich) und schließlich Folgendes angezeigt:

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

Update 2:

Ich bin auch gelaufen yum clean allund hatte dort auch einige Probleme. Ich habe einige Ratschläge gefunden, um die __db*Dateien zu entfernen und es erneut zu versuchen:

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

Update 3:

Ich habe beim Laufen /var/log/messageseine Menge Output gesehen und gesehen yum-complete-transaction, die letzten beiden Zeilen waren:

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

Vermutlich deutet dies darauf hin, dass es sich um ein Gedächtnis handelt. Wenn ja, ist dies ein Fall, in dem mehr RAM benötigt wird, oder könnte es ein anderes Problem geben, das ich untersuchen muss?

Leonard Challis
quelle
2
Haben Sie Ihre Systemprotokolle überprüft? Möglicherweise geht Ihnen der Speicher aus.
Michael Hampton
Ja, ich habe gerade die Frage (Update 3) mit Speicherinformationen aktualisiert. Ich denke, Sie haben Recht.
Leonard Challis

Antworten:

6

Ähnliches Problem - und mein Fix. Ich hatte auch ein Problem mit dem Speicher, musste also den Speicher des VPS aktualisieren. Ich habe dann ein leckeres Update gemacht - natürlich habe ich die Fehler wie oben bekommen. Also schaute ich auf die fehlgeschlagenen und bemerkte, dass Yum die neuesten Coreutils - Version 37 - installiert (nun ja, mit der Installation begonnen) hatte, während ich noch 31 Stück hatte. Also zuerst Version 37 entfernte, dann bereinigte und dann Yum Update ausführte nochmal.

Dies führte dazu, dass die '31'-Version verfügbar war, um sauber "aktualisiert" zu werden. Siehe die Arbeit unten:

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

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

Aufräumen mit yum clean all:

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

Aktualisierung der Paketliste 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.

John
quelle
10

Der übliche Grund für das yumSterben Killedist, dass dem System der Speicher ausgeht.

Aus Ihren Protokollen geht hervor, dass Sie eine Amazon t1.micro-Instanz oder eine ähnlich große Instanz ohne Swap Space haben. Diese begrenzte Speichermenge reicht oft nicht aus, um eine große Anzahl von Paketinstallationen / -updates abzuschließen.

So beheben Sie das Problem:

  1. Fahren Sie laufende Dienste herunter, bis Sie über genügend Speicher verfügen, um die yum-Transaktion abzuschließen.

    Oder...

  2. Fügen Sie Ihrer Instanz eine Auslagerungsdatei oder einen Auslagerungsvorgang im kurzlebigen Speicher hinzu .

Dann sollten Sie in der Lage sein, Ihre Yum-Transaktionen abzuschließen.


Versuchen Sie es schließlich, um Ihre Paketprobleme von Ihren vorherigen fehlgeschlagenen Updates zu bereinigen

package-cleanup --cleandupes

bevor Sie andere Updates durchführen.

Michael Hampton
quelle
1
Sie können diese Gelegenheit auch nutzen, um zu einer t2.micro-Instanz zu wechseln, die über mehr Speicher verfügt, normalerweise schneller und billiger ist.
Michael Hampton
Danke dir. Es hat gedauert, httpd zu stoppen, aber es hat alles funktioniert und danach auch aufgeräumt.
Leonard Challis
2

Versuchen Sie, you update --skip-brokendass kaputte Pakete übersprungen werden (Sie können sie später bearbeiten). Es ist wahrscheinlich eine gute Idee, sie auszuführen, yum clean allbevor Sie etwas unternehmen.

Alexus
quelle
1

Das Herausfiltern der von Ihnen zitierten Fremdinformationen und die Hälfte der Zeit yumversuchen bereits, Ihnen zu helfen:

Es sind noch nicht abgeschlossene Transaktionen vorhanden. Sie könnten in Betracht ziehen, yum-complete-transactionzuerst zu laufen , um sie zu beenden. Das Programm yum-complete-transaction befindet sich im Paket yum-utils.

Hast du das schon versucht?

HBruijn
quelle
Ja, eigentlich habe ich es getan. Es sagte mir, dass es nicht abgeschlossen werden konnte und hatte die Transaktionsdateien umbenannt
Leonard Challis
Ich habe der Frage weitere Details hinzugefügt, mit Beispielen dafür, wann Dinge fehlschlagen.
Leonard Challis
0

Versuchen Sie es mit a

yum downgrade packagename

Ich weiß nicht warum, aber es wird aktualisiert, oder zumindest für mich mit dem Paket tcpdump. Ging von der Version tcpdump-4.5.1-2.el7.x86_64 zu tcpdump-4.7.4-1_ESG_ring.x86_64, was ich wollte.

hokie1999
quelle