Wie kann ich Updates für ein lokales Repo anzeigen, ohne den Cache zu leeren?

19

Ich habe ein lokales YUM-Repository eingerichtet, mit dem ich Testbuilds installiere. Zu Testzwecken werden meine Pakete versioniert von <svn version number>.<date>.<time>(zB12345.20110908.150404

Das Problem ist, wenn ich ein neues RPM erst einmal erstellt, es in das Repository-Verzeichnis kopiert und ausgeführt habe createrepo $REPO_DIR, sieht yum das neue RPM nicht als verfügbar an.

$ 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

Ich kann die Aktualisierungen sehen und sie abrufen, wenn ich yum clean alldie Metadaten starte und wieder abrufe, aber ich denke, das bedeutet nur, dass ich etwas anderes aus dem Repo machen muss, da ich das für andere Yum-Repos nicht tun muss.

Wie muss ich mein lokales Repository einrichten, damit ich nur yum updatevom Client ausführen kann, ohne meinen YUM-Cache bereinigen zu müssen?

Matt
quelle

Antworten:

24

Sie können "yum clean expire-cache" ausführen, was eine effizientere Methode ist, um yum anzuweisen, die Repos zu überprüfen. ... das andere, was zu tun wäre, wäre, den metadata_expire-Wert für das lokale Repo zu ändern. (siehe man yum.conf).

James Antill
quelle
Gibt es eine Möglichkeit, nur bestimmte Repositorys im Expire-Cache abzulegen?
Myroslav
1
Die einzige einfache Möglichkeit ist --disablerepo = * --enablerepo = myrepo, otherrepo ... obwohl Sie einen Alias ​​erstellen können, wenn Sie viel tun.
James Antill
11

Versuchen Sie, auf Yum-Clients die folgende Zeile in /etc/yum.conf einzufügen:

metadata_expire = 1m

Der folgende Befehl zeigt Ihnen weitere Informationen:

Mann yum.conf

Zu Ihrer Information. CentOS 5 hat den Parameter auskommentiert. CentOS 6.2 hat 90m für den Wert.

2oahu.com
quelle
Das ist etwas alt, aber ich bin nur darauf gestoßen. Sie können diesen Wert für ein einzelnes Repository festlegen, indem Sie die Datei /etc/yum.repos.d/my.repo bearbeiten.
jwm
3

yum clean metadata Bereinigt nur die zwischengespeicherten Namen und dergleichen, wonach yum seine Vorstellung von dem, was verfügbar ist, neu lädt.

vonbrand
quelle
0

Hatte gerade das gleiche Problem, versuchen Sie:

lecker sauber alle

jobwat
quelle
1
Bitte lesen Sie die Frage sorgfältig durch. Ich glaube, er suchte nach einer alternativen Methode, bei der er den Cache nicht leeren musste.
Slm
gott du hast so recht:
Jobwat
0

yums --enablerepo = localrpmrepo ist die Option, nach der Sie suchen. so

yum --enablerepo=localrpmrepo clean metadata

Ersetzen Sie localrpmrepo durch Ihren Repos-Namen

Neil
quelle
Nein, in diesem Fall ist das Problem sicherlich, dass es denkt, dass der Cache noch gültig ist und nicht nach Updates sucht.
Falcon Momot
Ich konnte nur ein Repository diese Aussage und ein anderes aktualisieren mit: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. Ich mache einfach eine Bash-Funktion und bin fertig damit!
bgStack15