Câu trả lời:
Các check-update
lệ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
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ế ...
Trong khi yum check-update
sẽ 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 update
là yum makecache
... tuy nhiên nó thường không được khuyến khích để chạy trực tiếp, trong yum.
yum
lệnh khác , ví dụ yum upgrade
sẽ tự động chạy yum check-update
nếu cần thiết. Nói cách khác, yum upgrade
về cơ bản là giống như apt-get update; apt-get upgrade
.
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-update
khô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 :)
Thật không may yum check-update
theo mặc định không kéo xuống các thay đổi từ kho lưu trữ từ xa cho đến khi yum.conf
tham 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-update
và 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.
Đó 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 33461 và 40068 , 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.
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 makecache
không được đề xuất hoặc dnf
tương đương là gì.
yum
trả 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 update
làm mới tập tin chỉ mục nhưngyum check-update
không.