Yum tương đương với 'apt-get update' là gì?


86

Debian apt-get updatetìm nạp và cập nhật chỉ mục gói. Bởi vì tôi đã quen với cách làm việc này, tôi đã ngạc nhiên khi thấy điều đó yum updatelàm tất cả những điều đó nâng cấp hệ thống. Điều này khiến tôi tò mò về cách cập nhật chỉ mục gói mà không cần cài đặt gì.

Câu trả lời:


90

Các check-updatelệnh sẽ làm mới các chỉ số gói và kiểm tra các bản cập nhật có sẵn:

yum check-update

3
Lệnh này cho phép bạn xác định xem có bản cập nhật nào cho các gói đã cài đặt của bạn không . yumtrả về một danh sách tất cả các bản cập nhật gói từ tất cả các kho nếu có sẵn. apt-get updatelàm mới tập tin chỉ mục nhưng yum check-updatekhông.
SuB

Điều này không hoạt động nếu yumđã được chạy gần đây, hãy xem một số câu trả lời khác cho các lựa chọn thay thế ...
rogerdpack

29

Trong khi yum check-updatesẽ kiểm tra các bản cập nhật cho các gói đã cài đặt, nếu nó cần được làm mới, thì hầu hết các lệnh khác cũng vậy.

Lệnh đó là đúng tương đương apt-get updateyum makecache... tuy nhiên nó thường không được khuyến khích để chạy trực tiếp, trong yum.


1
Tôi không hiểu câu đầu tiên. Bạn có thể viết lại có thể?
tshepang

8
Nó có nghĩa là các yumlệnh khác , ví dụ yum upgradesẽ tự động chạy yum check-updatenếu cần thiết. Nói cách khác, yum upgradevề cơ bản là giống như apt-get update; apt-get upgrade.
Mikel

Cảm ơn bạn! yum check-update không giúp tôi chống lại lỗi 404. Nhưng yum makecache giúp! Lời cảm ơn to lớn!
thất bại

Bản gốc là về việc tự động cập nhật repodata để trình bày thông tin mới nhất (điều mà apt-get không làm được, hoặc ít nhất là không có trong năm 2011). Sau khi chỉnh sửa, bây giờ nó trở nên vô nghĩa đến kỳ lạ :(.
James Antill

Tại sao không nên chạy yum makecache? Nó được liệt kê trong trang man và dường như hoạt động như apt-get update... cũng lưu ý rằng yum check-updatekhông phải lúc nào cũng thực hiện làm mới, hãy xem các câu trả lời khác, FWIW :)
rogerdpack

21

Thật không may yum check-updatetheo mặc định không kéo xuống các thay đổi từ kho lưu trữ từ xa cho đến khi yum.conftham số metadata_Exire đã hết (mặc định 90m). Rõ ràng mục đích của nó là "biết nếu máy của bạn có bất kỳ bản cập nhật nào cần được áp dụng mà không chạy nó một cách tương tác" vì vậy về cơ bản nó "kiểm tra xem có gói nào có thể cập nhật" không "làm mới danh sách các gói mà tôi có thể cập nhật" như bạn 'mong đợi.

Vì vậy, nếu bạn chạy yum check-updatevà nhận được điều này:

$ sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

packagename      version     repo

Điều này có nghĩa là kiểm tra cập nhật không thực hiện cập nhật, giống như apt-get update.

Bạn có thể thấy sẽ mất bao lâu trước khi thực hiện "tự động làm mới" mà tất cả các lệnh thực hiện bên dưới, bằng cách chạy này :yum repolist enabled -v

Làm việc xung quanh:

sử dụng yum clean expire-cache (hoặc yum clean all) trước, sau đó bất kỳ lệnh yum nào trong tương lai sẽ tự động làm mới bộ đệm "khi chạy." . Bởi vì các lệnh yum trong tương lai làm mới bộ đệm, điều này trong thực tế giống như apt-get update.

Hoặc tôi thay đổi tham số metadata_Exire của yum.conf thành ít hơn 90 phút mặc định, tôi đoán vậy.

Hoặc chạy yum makecache(từ các câu trả lời khác) có vẻ như xóa bộ nhớ cache và kéo xuống các bản sao mới ngay sau đó. Nhưng nó dường như mất nhiều thời gian hơn clean all(?) FWIW.


2
Không chắc chắn tại sao câu trả lời này là mòn mỏi ở phía dưới. Đây dường như là câu trả lời rõ ràng và đơn giản.
cbmanica

2

Đó là lệnh để cập nhật bộ đệm cục bộ, do đó

yum makecache

dường như là lệnh bạn đang tìm kiếm, theo Work with Yum cache .

Thông thường, bạn không cần phải chạy lệnh này trực tiếp vì yum đã kiểm tra và làm mới siêu dữ liệu dựa trên giá trị metadata_Exire trong yum.conf, mặc định là 6 giờ.

Tuy nhiên, có thể có ít nhất một trường hợp sử dụng, trong Playbook Ansible, vì bạn không có cách nào trong Playbook Ansible để chỉ cập nhật bộ đệm mà không cài đặt bất kỳ gói nào (Xem các vấn đề Ansible 3346140068 , dường như được sửa trong phiên bản 2.8, 46183 ). Mô-đun ysible yum yêu cầu tên gói cho tùy chọn 'update_cache: yes' để có hiệu lực. Vì vậy, như một lệnh 'thay thế: yum makecache' có thể được sử dụng trong playbook.

dnf cũng có lệnh makecache, mặc dù cũng có thể buộc đồng bộ hóa siêu dữ liệu với công tắc --refresh.


Câu trả lời hiện có này đã đề cập yum makecache; có lẽ bạn có thể mở rộng câu trả lời của mình để làm cho nó hữu ích hơn, ví dụ như bằng cách giải thích lý do tại sao yum makecachekhông được đề xuất hoặc dnftương đương là gì.
Stephen Kitt
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.