Ich habe ein lokales Yum-Repository eingerichtet, das ich zum Installieren von Test-Builds verwende. Für die Testzwecke werden meine Pakete versioniert von <svn version number>.<date>.<time>
(z. B.12345.20110908.150404
Das Problem besteht darin, dass, wenn ich ein neues RPM erstelle, es in das Repository-Verzeichnis kopiere und ausführe createrepo $REPO_DIR
, yum das neue RPM nicht als verfügbar erkennt.
$ 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 sie ausführe yum clean all
und dann die Metadaten erneut abrufe, aber ich glaube, das bedeutet nur, dass ich etwas anderes vom Repo aus tun muss, da ich das für andere Yum-Repos nicht tun muss.
Wie muss ich mein lokales Repository einrichten, sodass ich es nur yum update
vom Client aus ausführen muss, ohne meinen Yum-Cache leeren zu müssen?
Antwort1
Sie können „yum clean expire-cache“ ausführen. Dies ist eine viel effizientere Möglichkeit, Yum anzuweisen, die Repos zu überprüfen. ... Sie könnten auch den metadata_expire-Wert für das lokale Repo ändern. (siehe man yum.conf).
Antwort2
Versuchen Sie, auf Yum-Clients die folgende Zeile in /etc/yum.conf hinzuzufügen:
metadata_expire=1 Min.
Der folgende Befehl zeigt Ihnen weitere Informationen:
man yum.conf
Zu Ihrer Information: Bei CentOS 5 ist der Parameter auskommentiert. Bei CentOS 6.2 ist der Wert 90m.
Antwort3
yum clean metadata
bereinigt nur die zwischengespeicherten Namen usw., wonach Yum seine Vorstellung dessen, was verfügbar ist, neu lädt.
Antwort4
yum's --enablerepo=localrpmrepo ist die Option, nach der Sie suchen.
yum --enablerepo=localrpmrepo clean metadata
Ersetzen Sie localrpmrepo durch den Namen Ihres Repositorys