ทำไมจะไม่ติดตั้งการปรับปรุง yum?


9

ฉันได้รับข้อผิดพลาดฉันคิดว่ากับ coreutils ซึ่ง yum จะไม่อัปเดต นี่คือเอาท์พุทปล้นจากสิ่งที่ฉันเห็นเมื่อฉันทำงาน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

ฉันมีเซิร์ฟเวอร์อื่นที่ (เกือบ) เหมือนกันกับสิ่งนี้ (พวกเขามีโหลดบาลานซ์และทำงานจากอิมเมจเดียวกัน) และเซิร์ฟเวอร์นั้นไม่มีปัญหาเดียวกัน อาจมีปัญหาอะไรและฉันควรทำอย่างไรดีที่สุด?

ปรับปรุง:

ฉันวิ่งไปyum-complete-transactionที่ล้มเหลวและบอกว่ามันได้เปลี่ยนชื่อไฟล์ธุรกรรม มันยังบอกว่ามีธุรกรรมที่ไม่สมบูรณ์ แต่ตอนนี้เกิดขึ้นเมื่อฉันเรียกใช้:

[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

ทันใดนั้นก็หยุดด้วยKilledเส้น

ฉันพยายามวิ่งyum update --skip-brokenต่อไป:

[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

จากนั้นอีกหลายรายการRunning transaction check:และProcessing Dependency: coreutils =...อีกหลายwilly be updated/willbe an updateรายการ แล้ว:

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

Dependencies Resolved

จากนั้นฉันจะแสดงตารางพร้อมรายการInstalling:และUpdating:แพ็คเกจโดยมีการสรุปในตอนท้าย:

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

จากนั้นดาวน์โหลดแพ็คเกจทั้งหมด (81/81 สำเร็จ) และในที่สุดก็แสดงสิ่งนี้:

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

อัปเดต 2:

ฉันยังวิ่งyum clean allและมีปัญหาบางอย่างที่นั่นเช่นกัน ฉันพบคำแนะนำในการลบ__db*ไฟล์แล้วลองอีกครั้ง:

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

อัปเดต 3:

ฉันปรับ/var/log/messagesและเห็นผลลัพธ์จำนวนมากเมื่อฉันวิ่งyum-complete-transactionสองบรรทัดสุดท้ายคือ:

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

สมมุติว่านี่เป็นการชี้ให้เห็นว่ามันเกี่ยวข้องกับความทรงจำ ถ้าเป็นเช่นนั้นนี่เป็นกรณีที่ต้องการ RAM เพิ่มขึ้นหรืออาจมีปัญหาอื่นที่ฉันต้องตรวจสอบ


2
คุณตรวจสอบบันทึกระบบของคุณหรือไม่ คุณอาจมีหน่วยความจำไม่เพียงพอ
Michael Hampton

ใช่ฉันเพิ่งปรับปรุงคำถาม (อัปเดต 3) ด้วยข้อมูลหน่วยความจำฉันคิดว่าคุณพูดถูก
Leonard Challis

คำตอบ:


6

ปัญหาที่คล้ายกัน - และการแก้ไขของฉัน ฉันมีปัญหากับหน่วยความจำด้วยดังนั้นต้องอัพเกรดหน่วยความจำของ VPS จากนั้นฉันได้ทำการปรับปรุงยำ - แน่นอนว่ามีข้อผิดพลาดดังกล่าว ดังนั้นเมื่อมองถึงความล้มเหลวและสังเกตเห็นสิ่งที่เกิดขึ้นคือยำติดตั้ง (ดีเริ่มติดตั้ง) coreutils ล่าสุด - รุ่น 37 ในขณะที่ฉันยังคงมีบิต 31 ดังนั้นก่อนลบรุ่น 37 แล้วทำความสะอาดแล้ววิ่งปรับปรุงยำ อีกครั้ง

ทำให้รุ่น '31' พร้อมใช้งานเพื่อให้เป็น "อัปเดต" อย่างหมดจด ดูงานด้านล่าง:

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

วิ่ง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!

ทำความสะอาดโดยใช้yum clean all:

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

การรีเฟรชรายการแพ็กเกจ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!

-จีบ.


11

สาเหตุปกติของการyumตายด้วยKilledคือระบบมีหน่วยความจำไม่เพียงพอ

จากบันทึกของคุณดูเหมือนว่าคุณมีอินสแตนซ์ Amazon t1.micro หรือบางสิ่งที่มีขนาดใกล้เคียงกันและไม่มีพื้นที่สว็อปใด ๆ จำนวนหน่วยความจำที่ จำกัด นี้มักจะไม่เพียงพอที่จะทำการติดตั้ง / อัพเดทแพ็คเกจจำนวนมากจนเสร็จสมบูรณ์

เมื่อต้องการแก้ไขปัญหาอย่างใดอย่างหนึ่ง:

  1. ปิดการเรียกใช้บริการจนกว่าคุณจะมีหน่วยความจำเพียงพอที่จะทำธุรกรรมยำ

    หรือ...

  2. เพิ่มไฟล์ swapหรือswap บนที่เก็บข้อมูลชั่วคราวในอินสแตนซ์ของคุณ

จากนั้นคุณควรจะสามารถทำธุรกรรมยำของคุณให้เสร็จสมบูรณ์


สุดท้ายเพื่อล้างปัญหาแพ็คเกจของคุณจากการอัปเดตที่ล้มเหลวก่อนหน้านี้ลอง

package-cleanup --cleandupes

ก่อนที่คุณจะทำการอัปเดตอื่น ๆ


1
คุณอาจใช้โอกาสนี้ในการสลับไปใช้อินสแตนซ์ t2.micro ซึ่งมีหน่วยความจำมากกว่าปกติจะเร็วกว่าและราคาถูกกว่า
Michael Hampton

ขอบคุณ. ใช้เวลาหยุด httpd แต่ก็ใช้งานได้หมดและทำความสะอาดหลังจากนั้นเช่นกัน
Leonard Challis

2

ลองyou update --skip-brokenที่จะข้ามแพคเกจที่เสียหาย (คุณสามารถจัดการกับพวกเขาในภายหลัง) อาจเป็นความคิดที่ดีที่จะทำงานyum clean allก่อนที่จะทำอะไร


1

การกรองข้อมูลที่ไม่เกี่ยวข้องที่คุณยกมาและครึ่งทางผ่านyumนั้นได้พยายามช่วยคุณแล้ว:

ยังมีธุรกรรมที่ยังไม่เสร็จ คุณอาจลองเรียกใช้yum-complete-transactionก่อนเพื่อทำให้เสร็จ โปรแกรม yum-complete-transaction พบได้ในแพ็คเกจ yum-utils

คุณลองแล้วหรือยัง


ใช่ฉันทำ มันบอกฉันว่ามันไม่สมบูรณ์และได้เปลี่ยนชื่อไฟล์ธุรกรรม
Leonard Challis

ฉันได้เพิ่มรายละเอียดเพิ่มเติมลงในคำถามพร้อมตัวอย่างเมื่อสิ่งต่าง ๆ ล้มเหลว
Leonard Challis

0

ลอง

ชื่อชุดการลดระดับ yum

ไม่แน่ใจว่าทำไม แต่เป็นอัปเดตหรืออย่างน้อยก็ทำเพื่อฉันด้วยแพ็คเกจ tcpdump ไปจากรุ่น tcpdump-4.5.1-2.el7.x86_64 ถึง tcpdump-4.7.4-1_ESG_ring.x86_64 ซึ่งเป็นสิ่งที่ฉันต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.