Bagaimana cara membuat yum melihat pembaruan untuk repo lokal tanpa membersihkan cache?

19

Saya telah menyiapkan repositori yum lokal yang saya gunakan untuk menginstal test build. Untuk tujuan pengujian, paket saya diversi oleh <svn version number>.<date>.<time>(mis12345.20110908.150404

Masalahnya adalah, setelah saya membuat RPM baru, salin ke direktori repositori dan jalankan createrepo $REPO_DIR, yum tidak melihat RPM baru tersedia.

$ 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

Saya dapat melihat pembaruan dan mengambilnya jika saya menjalankan yum clean alldan kemudian mengambil kembali metadata, tetapi saya pikir ini hanya berarti saya perlu melakukan sesuatu yang lain dari repo, karena saya tidak harus melakukan itu untuk repo yum lainnya.

Bagaimana saya perlu mengatur repositori lokal saya sehingga saya hanya perlu menjalankan yum updatedari klien tanpa harus membersihkan cache yum saya?

Mat
sumber

Jawaban:

24

Anda dapat menjalankan "yum clean expire-cache" yang merupakan cara yang lebih efisien untuk memberitahu yum untuk memeriksa repo. ... hal lain yang harus dilakukan adalah mengubah nilai metadata_expire untuk repo lokal. (lihat man yum.conf).

James Antill
sumber
Apakah ada cara untuk kedaluwarsa-cache hanya repositori tertentu?
myroslav
1
Satu-satunya cara mudah untuk melakukannya adalah --disablerepo = * --enablerepo = myrepo, otherrepo ... walaupun Anda dapat membuat alias jika itu adalah sesuatu yang akan Anda lakukan banyak.
James Antill
11

Coba tambahkan baris berikut di /etc/yum.conf pada klien Yum:

metadata_expire = 1m

Perintah berikut menunjukkan Anda lebih banyak info:

man yum.conf

FYI. CentOS 5 memiliki parameter yang dikomentari. CentOS 6.2 memiliki nilai 90m.

2oahu.com
sumber
Ini agak tua, tapi saya hanya mengalami ini. Anda dapat mengatur nilai ini untuk satu repositori dengan mengedit file /etc/yum.repos.d/my.repo.
jwm
3

yum clean metadata membersihkan hanya nama-nama yang di-cache dan semacamnya, setelah itu yum memuat kembali idenya tentang apa yang tersedia.

vonbrand
sumber
0

Baru saja mengalami masalah yang sama, coba:

yum bersih semuanya

jobwat
sumber
1
Silakan baca pertanyaan dengan seksama. Saya percaya dia sedang mencari metode alternatif di mana dia tidak perlu menghapus cache.
slm
Tuhan kau benar sekali: |
jobwat
0

yum's --enablerepo = localrpmrepo adalah opsi yang Anda cari. begitu

yum --enablerepo=localrpmrepo clean metadata

ganti localrpmrepo dengan nama repos Anda

Neil
sumber
Tidak, dalam hal ini, masalahnya adalah ia berpikir bahwa cache masih valid dan tidak memeriksa pembaruan.
Falcon Momot
Saya bisa update hanya satu repositori menggunakan pernyataan ini dan satu lagi: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Saya hanya akan membuat fungsi bash dan selesai dengan itu!
bgStack15