Laden Sie ALLE RPMs für ein Produkt herunter


8

Ich habe zwei CentOS-Maschinen, eine 6.3-Box ( A ) und eine weitere CentOS 6.1. ( B )

6.3 Box ist mit Internetverbindung, 6.1 Box ist ohne Internetverbindung.

Ich möchte ALLE Abhängigkeiten eines Produkts von Box A herunterladen, dann diese n Box B kopieren und das Produkt installieren.

Ich habe es mit versucht

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .

Dann habe ich alle Repos (mit --disablerepo) außer meinem Repo deaktiviert und das Produkt auf demselben Computer installiert (Box A). Keine Fehler.

  • yum install *product*

Wenn ich dieses Repo in Box B kopiere und versuche, es mit demselben Befehl zu installieren, wird es installiert, es werden jedoch viele Fehler wie folgt angezeigt:

Fehler: Fehlende Abhängigkeit: libldap-2.3.so.0 () (64 Bit) wird vom Paket php-ldap-5.1.6-27.el5_5.3.x86_64 (installiert) benötigt.

Wie kann ich auf irgendeine Weise erreichen, was ich brauche?

AKTUALISIEREN

Als ich anfing, mit der von @rkosegi vorgeschlagenen Option ( --releasever = version ) zu arbeiten, erhielt ich eine neue Box mit derselben Version von CentOS 6.1 ( C ).

Ich habe die oben genannten Befehle in Box C ausprobiert und sie in Box B kopiert. Trotzdem ist sie fehlgeschlagen. Der Grund: Obwohl beide Felder 6.1 sind, sind diese nicht identisch ( uname -r gibt unterschiedliche Zeichenfolgen zurück).

Yum lädt keine Abhängigkeiten herunter, sofern diese bereits installiert sind. Mein Repo enthielt also einige der Abhängigkeiten (einschließlich OpenJDK) nicht. Wenn ich also versuche, auf Box B zu installieren, schlägt dies fehl.

Ziemlich frustrierend !!!

Aber dann habe ich hier den Befehl ' repotrack ' gefunden .

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

Ich habe viel mehr Dateien als mit yum, hoffentlich reicht es.

Ich werde aktualisieren, sobald ich versuche zu installieren.

AKTUALISIEREN

Command Repotrack hat bei mir nicht funktioniert. Beim Versuch, aus einem mit 'repotrack' erstellten Repository zu installieren, wurden folgende Fehler angezeigt:

Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
       Requires: perl = 4:5.10.1-127.el6
       Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
       Requires: audit-libs = 2.2-2.el6
       Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           audit-libs = 2.1.3-3.el6

Ich habe versucht, diese beiden Dateien aus dem Ordner zu entfernen und das Repository mit 'createrepo' neu zu erstellen. Es gab eine weitere Reihe von Fehlern.

Ich bin mir nicht sicher, welche Optionen ich im Moment habe ...


Es gibt kein "6.1" CentOS. Es ist nur CentOS 6 auf dem neuesten Stand, als RHEL 6.1 geschnitten wurde, wahrscheinlich mit vielen Updates seitdem.
vonbrand

Antworten:


1

Wenn Sie dies häufig tun müssen, sollten Sie sich die Zeit nehmen, um Spacewalk einzurichten . Es wird das Erstellen des Repositorys automatisieren und es mit den entsprechenden Paketen (oder, wenn Sie möchten, allen) füllen. Ganz zu schweigen von allem anderen, was es tut ...


0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Sie müssen yum anweisen, aus dem Repository der gleichen Version wie der Zielcomputer (6.1) herunterzuladen.

Stellen Sie außerdem sicher, dass auf dem Computer (6.3), der den Download ausführt, einige Abhängigkeiten, die auf dem Zielcomputer (6.1) fehlen, noch nicht installiert sind.


Das wird nicht unbedingt funktionieren, da es die Pakete erhält, die für die Installation auf diesem System erforderlich sind . Dies könnte durchaus ein ganz anderer Satz sein als der, der auf einem (wahrscheinlich veralteten) nicht vernetzten Computer erforderlich ist.
vonbrand

0

Wenn Sie keine "saubere" Maschine bekommen können, müssen Sie entweder manuell mit yum providesoder nach den fehlenden Teilen suchen

Sie müssen Ihre RPMs, die sich bereits in Ihrem Repo befinden, durchgehen und ihre Abhängigkeiten abfragen : rpm -qp --requires RPM. Wenn diese Liste etwas Neues enthält, das noch nicht Teil Ihres Repos ist, müssen Sie es hinzufügen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.