Tại sao bạn không cài đặt bản cập nhật?


9

Tôi đang gặp lỗi, tôi nghĩ với coreutils, nơi bạn sẽ không cập nhật. Đây là một đầu ra bị loại bỏ khỏi những gì tôi thấy khi tôi chạy 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

Tôi có một máy chủ khác (gần như) giống hệt với cái này (chúng được cân bằng tải và hoạt động từ cùng một hình ảnh) và chúng không gặp phải vấn đề tương tự. Điều gì có thể là vấn đề và làm thế nào tôi nên tiến hành tốt nhất?

Cập nhật:

Tôi cũng chạy yum-complete-transactionthất bại và nói rằng nó đã đổi tên các tập tin giao dịch. Nó vẫn nói rằng có một giao dịch chưa hoàn thành nhưng bây giờ điều này xảy ra khi tôi chạy nó:

[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

Sau đó nó đột nhiên dừng lại với Killeddòng.

Tôi đã thử chạy yum update --skip-brokentiếp:

[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

Sau đó, một vài Running transaction check:s và Processing Dependency: coreutils =...các mục trong số nhiều willy be updated/willbe an updatemục. Sau đó:

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

Dependencies Resolved

Sau đó, tôi đã hiển thị một bảng với một danh sách Installing:Updating:các gói, với một bản tóm tắt ở cuối:

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

Sau đó, nó tải xuống tất cả các gói (81/81 thành công) và cuối cùng hiển thị điều này:

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

Cập nhật 2:

Tôi cũng chạy yum clean allvà có một số vấn đề ở đó quá. Tôi tìm thấy một số lời khuyên để loại bỏ các __db*tập tin và thử lại:

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

Cập nhật 3:

Tôi đã kéo /var/log/messagesvà thấy rất nhiều đầu ra khi tôi chạy yum-complete-transaction, hai dòng cuối cùng là:

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

Vì vậy, có lẽ điều này cho thấy nó liên quan đến bộ nhớ. Nếu vậy, đây có phải là một trường hợp cần thêm RAM, hoặc có thể có một vấn đề khác tôi cần điều tra?


2
Bạn đã kiểm tra nhật ký hệ thống của bạn? Bạn có thể sắp hết bộ nhớ.
Michael Hampton

Vâng, tôi vừa cập nhật câu hỏi (cập nhật 3) với thông tin bộ nhớ, tôi nghĩ bạn đã đúng.
Leonard Challis

Câu trả lời:


6

Vấn đề tương tự - và sửa chữa của tôi. Tôi cũng gặp vấn đề với bộ nhớ, vì vậy phải nâng cấp bộ nhớ của VPS. Sau đó tôi đã thực hiện cập nhật yum - tất nhiên có lỗi như trên. Vì vậy, nhìn vào thất bại, và nhận thấy những gì đã xảy ra là Yum đã cài đặt (tốt, đã bắt đầu cài đặt) coreutils mới nhất - phiên bản 37, trong khi tôi vẫn có bit 31. Vì vậy, trước tiên, hãy gỡ bỏ phiên bản 37, sau đó xóa sạch và sau đó chạy cập nhật yum lần nữa.

Điều đó khiến phiên bản '31' có sẵn được "cập nhật" sạch sẽ. Xem công việc dưới đây:

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

Chạy 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!

Dọn dẹp bằng cách sử dụng yum clean all:

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

Làm mới danh sách gói 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

Lý do thông thường để yumchết cùng Killedlà hệ thống hết bộ nhớ.

Từ nhật ký của bạn, có vẻ như bạn có một ví dụ Amazon t1.micro hoặc một cái gì đó có kích thước tương tự và không có bất kỳ không gian trao đổi nào. Lượng bộ nhớ hạn chế này thường không đủ để hoàn thành một số lượng lớn các cài đặt / cập nhật gói.

Để giải quyết vấn đề, một trong hai:

  1. Tắt các dịch vụ đang chạy cho đến khi bạn có đủ bộ nhớ để hoàn thành giao dịch yum.

    Hoặc là...

  2. Thêm một tập tin trao đổi hoặc trao đổi trên lưu trữ phù du vào ví dụ của bạn.

Sau đó, bạn sẽ có thể hoàn thành giao dịch yum của bạn.


Cuối cùng, để dọn sạch các sự cố gói của bạn khỏi các bản cập nhật thất bại trước đó, hãy thử

package-cleanup --cleandupes

trước khi bạn thực hiện bất kỳ cập nhật khác.


1
Bạn cũng có thể nhân cơ hội này để chuyển sang một ví dụ t2.micro, có nhiều bộ nhớ hơn, thường nhanh hơn và rẻ hơn.
Michael Hampton

Cảm ơn bạn. Nó đã dừng httpd nhưng tất cả đều hoạt động và sau đó cũng được dọn sạch.
Leonard Challis

2

Hãy thử you update --skip-brokenđiều đó sẽ bỏ qua các gói bị hỏng (bạn có thể xử lý chúng sau này), có lẽ nên chạy yum clean alltrước khi làm bất cứ điều gì.


1

Lọc ra các thông tin không liên quan mà bạn đã trích dẫn và nửa chừng yumđã cố gắng giúp bạn:

Có những giao dịch còn dang dở. Bạn có thể cân nhắc chạy yum-complete-transactiontrước để hoàn thành chúng. Chương trình yum-Complete-giao dịch được tìm thấy trong gói yum-utils.

Bạn đã thử nó chưa?


Có thực sự tôi đã làm. Nó nói với tôi rằng nó không thể hoàn thành và đã đổi tên các tệp giao dịch
Leonard Challis

Tôi đã thêm chi tiết cho câu hỏi với các ví dụ về khi mọi thứ không thành công.
Leonard Challis

0

Hãy thử một

yum hạ cấp packagename

Không chắc chắn tại sao nhưng nó cập nhật, hoặc ít nhất nó đã làm cho tôi với gói tcpdump. Đã đi từ phiên bản tcpdump-4.5.1-2.el7.x86_64 đến tcpdump-4.7.4-1_ESG_ring.x86_64 đó là những gì tôi muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.