Làm cách nào để yum thấy các bản cập nhật cho repo cục bộ mà không làm sạch bộ đệm?


19

Tôi đã thiết lập một kho lưu trữ yum cục bộ mà tôi sử dụng để cài đặt các bản dựng thử nghiệm. Đối với mục đích thử nghiệm, các gói của tôi được phiên bản bởi <svn version number>.<date>.<time>(ví dụ:12345.20110908.150404

Vấn đề là, một khi tôi tạo một RPM mới, sao chép nó vào thư mục kho lưu trữ và chạy createrepo $REPO_DIR, yum không thấy RPM mới là có sẵn.

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

Tôi có thể xem các bản cập nhật và lấy chúng nếu tôi chạy yum clean allvà sau đó lấy lại siêu dữ liệu, nhưng tôi nghĩ điều này chỉ có nghĩa là tôi cần phải làm một cái gì đó khác từ repo, vì tôi không phải làm điều đó cho các repos yum khác.

Làm thế nào để tôi cần thiết lập kho lưu trữ cục bộ để tôi chỉ cần chạy yum updatetừ máy khách mà không phải xóa bộ đệm yum của mình?

Câu trả lời:


24

Bạn có thể chạy "yum clean expire-cache", đây là cách hiệu quả hơn nhiều để nói với yum kiểm tra repos. ... điều khác cần làm là thay đổi giá trị metadata_Exire cho repo cục bộ. (xem người đàn ông yum.conf).


Có cách nào để hết hạn lưu trữ chỉ bộ nhớ cache cụ thể không?
myroslav

1
Cách dễ dàng duy nhất để làm điều đó là --disablerepo = * --enablerepo = myrepo, otherrepo ... mặc dù bạn có thể tạo bí danh nếu đó là điều bạn sẽ làm rất nhiều.
James Antill

11

Hãy thử thêm dòng sau vào /etc/yum.conf trên máy khách Yum:

metadata_Exire = 1m

Lệnh sau cho bạn biết thêm thông tin:

người đàn ông yum.conf

FYI. CentOS 5 có thông số nhận xét. CentOS 6.2 có 90m cho giá trị.


Điều này hơi cũ, nhưng tôi chỉ chạy vào đây. Bạn có thể đặt giá trị này cho một kho lưu trữ bằng cách chỉnh sửa tệp /etc/yum.repos.d/my.repo.
JWM

3

yum clean metadata làm sạch chỉ các tên được lưu trong bộ nhớ cache và như vậy, sau đó yum tải lại ý tưởng của nó về những gì có sẵn.


0

Chỉ có vấn đề tương tự, hãy thử:

yum làm sạch tất cả


1
Xin vui lòng đọc câu hỏi cẩn thận. Tôi tin rằng anh ta đang tìm kiếm một phương pháp thay thế mà anh ta không phải xóa bộ nhớ cache.
slm

chúa bạn rất đúng: |
việc làm

0

yum's --enablerepo = localrpmrepo là tùy chọn bạn theo đuổi. vì thế

yum --enablerepo=localrpmrepo clean metadata

thay thế localrpmrepo bằng tên repos của bạn


Không, trong trường hợp này, vấn đề chắc chắn là nó nghĩ rằng bộ đệm vẫn còn hiệu lực và không kiểm tra cập nhật.
Falcon Momot

Tôi đã có thể cập nhật chỉ một kho lưu trữ bằng cách sử dụng câu lệnh này và một kho lưu trữ khác : yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Tôi sẽ chỉ thực hiện một chức năng bash và được thực hiện với nó!
bgStack15
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.