Gibt es eine Möglichkeit, alle Abhängigkeiten mit yumdownloader herunterzuladen, auch wenn sie bereits installiert sind?
Ich versuche, ein lokales Repo zu erstellen und möchte nur die Pakete einschließen, die wir benötigen.
yum
repository
Luke
quelle
quelle
--requires
--resolve
Option von repoquery funktioniert nicht rekursiv für deps.--recursive
Fügen Sie dem Befehl repoquery die Option hinzu, damit er rekursiv funktioniert.yum-utils
Projekt eingefügt werden . Der Grund, warum mehr Pakete als erwartet heruntergeladen werden, ist, dass die FunktionrpmUtils.arch.getArchList()
alle kompatiblen Architekturen für die angegebene zurückgibt. Es enthält zum Beispiel dienoarch
Architektur, die vonx86_64
Paketen benötigt werden kann. Sie können die Quelle überprüfen: yum.baseurl.org/gitweb?p=yum.git;a=blob;f=rpmUtils/…Zu jedermanns Information,
yumdownloader
macht den Job nicht. Für alle, die Erfahrung in der Paketverwaltung mit `yum haben, ist es natürlich zu erwarten, dass die folgende Befehlszeile ein Paket-RPM und alle seine Abhängigkeiten rekursiv herunterlädt:Aber das tut es nicht. Möglicherweise werden Abhängigkeiten der ersten Ebene oder solche gedruckt, die noch nicht installiert sind. Ich bin mir nicht sicher.
Hier ist eine Methode, die unter CentOS 6.5 funktioniert. Befolgen Sie die Schritte, um das
yum
von Red Hat bereitgestellte Downloadonly-Plugin zu installieren . Grundsätzlich tun Sie unter CentOS 6.x Folgendes:Dann nutzen Sie das Plugin in Kombination mit dem
--installroot
Schalter vonyum
. Dadurch wird verhindertyum
, dass bereits auf dem System installierte Abhängigkeiten aufgelöst und übersprungen werden.Sie haben die RPMs des Pakets
<package>
und alle Abhängigkeiten im Verzeichnis heruntergeladen<rpm_dir>
. Beispiel mit Git:quelle
sudo yum install yum-plugin-downloadonly.noarch
sagtNo package yum-plugin-downloadonly.noarch available.
was zu tun ist?yum search yumdownloader
kehrt zurückyum-utils.noarch
Cannot find a valid baseurl for repo: base/$releasever/x86_64
wenn ich das--installroot
Flag hinzufüge .Cannot find a valid baseurl...
Problem auf Centos 7 wurde mit der Lösung auf diesem Link--releasever=/
Mir ist klar, dass der Thread alt ist, aber falls jemand darüber stolpert, können Sie yum verwenden, um das gewünschte Verhalten zu erreichen.
Zuerst das Downloadonly Plugin installieren (Anleitung für RHEL): (RHEL5)
(RHEL6)
Führen Sie anschließend den Befehl wie folgt aus:
Wenn Sie ignorieren, wird das
--downloaddir
YUM automatisch heruntergeladen/var/cache/yum
Wenn Sie yumdownloader nicht speziell verwenden müssen, ist dies meiner Meinung nach der einfachste Weg, um das Ziel zu erreichen.
quelle
Wenn Sie aus der Zukunft (Fedora 23+) kommen, in der yum durch dnf ersetzt wird, ist dieses Bash-Skript möglicherweise hilfreich.
rpmDownloader:
rpmResolver:
quelle
Ich fand es in der Praxis schwierig, ein solches Repo zu bauen. Wir haben dieses Repo gebaut, weil:
Die Probleme, die wir behandeln können, waren:
Am Ende bestand die bessere Lösung für unser Problem darin, die offiziellen Repos zu vertreten und die von uns verwendeten Pakete zwischenzuspeichern. Das funktioniert gut, weil:
Wir haben Nginx und die integrierte Proxy-Unterstützung verwendet.
quelle
Aufbauend auf Lukes Antwort und den Kommentaren ...
Zum Zeitpunkt des Schreibens
repotrack
werden alle folgenden Architekturen übereinstimmen , wennx86_64
angegeben wird:x86_64
,athlon
,i686
,i586
,i486
,i386
, undnoarch
.Für meine Zwecke interessiere ich mich nur für
x86_64
undnoarch
Pakete, und ich weiß, dass meine Distribution keineathlon
Pakete enthält.Der folgende Befehl ruft eine Liste der Paket-URLs ab, filtert
i?86
Architekturen heraus und druckt die Namen der Pakete beim Herunterladen aus:Beachten Sie, dass Sie
repotrack
nicht gewarnt werden, wenn in Ihren aktivierten Repos kein Paket gefunden wird, das eine Abhängigkeit erfüllt. Es überspringt es leise.quelle
Probiere auch
z.B:
Quelle: https://www.thegeekdiary.com/downloading-rpm-packages-with-dependencies-yumdownloader-vs-yum-downloadonly-vs-repoquery/
quelle