Mengapa Anda tidak menginstal pembaruan?


9

Saya mendapatkan kesalahan, saya pikir dengan coreutils, di mana yum tidak akan memperbarui. Berikut ini adalah keluaran dari apa yang saya lihat ketika saya menjalankan 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

Saya memiliki server lain yang (hampir) identik dengan ini (mereka memuat secara seimbang dan bekerja dari gambar yang sama) dan yang satu tidak punya masalah yang sama. Apa yang mungkin menjadi masalah dan bagaimana sebaiknya saya melanjutkan?

Memperbarui:

Saya juga menjalankan yum-complete-transactionitu gagal dan mengatakan telah mengubah nama file transaksi. Ia masih mengatakan ada transaksi yang tidak lengkap tetapi sekarang ini terjadi ketika saya menjalankannya:

[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

Kemudian tiba-tiba berhenti dengan Killedgaris.

Saya mencoba menjalankan yum update --skip-brokenselanjutnya:

[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

Kemudian beberapa lagi Running transaction check:, dan Processing Dependency: coreutils =...entri di antara lebih banyak willy be updated/willbe an updateentri. Kemudian:

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

Dependencies Resolved

Lalu saya ditunjukkan tabel dengan daftar Installing:dan Updating:paket, dengan ringkasan di akhir:

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

Itu kemudian mengunduh semua paket (81/81 berhasil) dan akhirnya menunjukkan ini:

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

Pembaruan 2:

Saya juga berlari yum clean alldan memiliki beberapa masalah di sana juga. Saya menemukan beberapa saran untuk menghapus __db*file dan coba lagi:

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

Pembaruan 3:

Saya membuntuti /var/log/messagesdan melihat banyak output ketika saya berlari yum-complete-transaction, dua baris terakhir adalah:

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

Jadi mungkin ini menunjukkan itu terkait dengan memori. Jika demikian, apakah ini kasus yang membutuhkan lebih banyak RAM, atau mungkinkah ada masalah lain yang perlu saya selidiki?


2
Apakah Anda memeriksa log sistem Anda? Anda mungkin kehabisan memori.
Michael Hampton

Ya, saya baru saja memperbarui pertanyaan (pembaruan 3) dengan info memori, saya pikir Anda benar.
Leonard Challis

Jawaban:


6

Masalah serupa - dan perbaikan saya. Saya punya masalah dengan memori juga, jadi harus memutakhirkan memori VPS. Saya kemudian melakukan pembaruan yum - tentu saja mendapat kesalahan seperti di atas. Jadi melihat gagal, dan perhatikan apa yang terjadi adalah bahwa Yum menginstal (well, mulai menginstal) coreutils terbaru - versi 37, sedangkan saya masih memiliki bit 31. Jadi pertama, menghapus versi 37, kemudian membersihkan dan menjalankan pembaruan yum lagi.

Itu menyebabkan versi '31' tersedia untuk "diperbarui" dengan bersih. Lihat pekerjaan di bawah ini:

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

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

Membersihkan menggunakan yum clean all:

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

Melakukan penyegaran daftar paket 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

Alasan umum untuk yummati Killedadalah karena sistem kehabisan memori.

Dari log Anda, sepertinya Anda memiliki instance Amazon t1.micro, atau sesuatu yang berukuran serupa, dan tanpa ruang swap. Jumlah memori terbatas ini sering tidak cukup untuk menyelesaikan sejumlah besar instalasi / pembaruan paket.

Untuk mengatasi masalah, baik:

  1. Matikan layanan yang berjalan hingga Anda memiliki cukup memori untuk menyelesaikan transaksi yum.

    Atau...

  2. Tambahkan file swap atau swap pada penyimpanan sementara ke instance Anda.

Maka Anda harus dapat menyelesaikan transaksi yum Anda.


Akhirnya, untuk membersihkan masalah paket Anda dari pembaruan yang gagal sebelumnya, coba

package-cleanup --cleandupes

sebelum Anda melakukan pembaruan lainnya.


1
Anda juga dapat menggunakan kesempatan ini untuk beralih ke instance t2.micro, yang memiliki lebih banyak memori, biasanya lebih cepat, dan lebih murah.
Michael Hampton

Terima kasih. Butuh menghentikan httpd tapi itu semua berhasil, dan dibersihkan setelahnya juga.
Leonard Challis

2

Coba you update --skip-brokenyang akan melewati paket yang rusak (Anda bisa mengatasinya nanti), mungkin ide yang baik untuk dijalankan yum clean allsebelum melakukan sesuatu.


1

Memfilter informasi asing yang Anda kutip dan setengah jalan yumsudah mencoba untuk membantu Anda:

Masih ada transaksi yang belum selesai. Anda mungkin mempertimbangkan berlari yum-complete-transactiondulu untuk menyelesaikannya. Program transaksi yum-lengkap-transaksi ditemukan dalam paket yum-utils.

Apakah Anda sudah mencobanya?


Ya sebenarnya saya lakukan. Ia memberi tahu saya bahwa itu tidak dapat diselesaikan dan telah mengubah nama file transaksi
Leonard Challis

Saya telah menambahkan rincian lebih lanjut ke pertanyaan dengan contoh-contoh ketika semuanya gagal.
Leonard Challis

0

Coba a

yum downgrade nama paket

Tidak yakin mengapa tetapi pembaruan, atau setidaknya itu lakukan untuk saya dengan paket tcpdump. Pergi dari versi tcpdump-4.5.1-2.el7.x86_64 ke tcpdump-4.7.4-1_ESG_ring.x86_64 yang saya inginkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.