it-swarm-vi.com

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

Debian là apt-get update tì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 rằng yum update thực hiện 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ì.

99
tshepang

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

yum check-update
98
wag

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 đó hoàn toàn tương đương với apt-get updateyum makecache ... tuy nhiên, nói chung không nên chạy trực tiếp trong yum.

31
James Antill

Thật không may, yum check-update Theo mặc định không kéo các thay đổi từ kho lưu trữ từ xa cho đến khi tham số metadata_Exire của yum.conf Đã hết (90m mặc định). 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à cập nhật kiểm tra là chứ không phải 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 this : yum repolist enabled -v

Làm việc xung quanh:

sử dụngyum clean expire-cache (hoặc yum clean all) trước tiên, sau đó mọi lệnh yum trong tương lai sẽ tự động làm mới bộ đệm "khi chạy." . Vì các lệnh yum trong tương lai làm mới bộ đệm, nên trên 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.

23
rogerdpack

Đó 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 Làm việc với 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ị siêu dữ liệu 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 461 = và 40068 , dường như được sửa trong phiên bản 2.8, 4618 ). 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.

2
Tufan K