Télécharger TOUS les RPM pour un produit

8

J'ai deux machines CentOS, une boîte 6.3 ( A ) et une autre CentOS 6.1. ( B )

La boîte 6.3 est avec connexion Internet, la boîte 6.1 est sans connexion Internet.

Je souhaite télécharger TOUTES les dépendances d'un produit sur la boîte A, puis copier ces n boîtes B et installer le produit.

J'ai essayé avec

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

Ensuite, j'ai désactivé tous les référentiels (avec --disablerepo), à l'exception de mon référentiel, et installé le produit sur la même machine (encadré A). Aucune erreur.

  • yum install *product*

Maintenant, quand j'ai copié ce dépôt dans la boîte B et essayé d'installer avec la même commande, il commence l'installation, mais donne ensuite beaucoup d'erreurs comme ci-dessous:

Erreur: dépendance manquante: libldap-2.3.so.0 () (64 bits) est requis par le package php-ldap-5.1.6-27.el5_5.3.x86_64 (installé)

Puis-je obtenir ce dont j'ai besoin?

MISE À JOUR

Au moment où j'ai commencé à travailler avec l'option suggérée par @rkosegi ( --releasever = version ), on m'a donné une nouvelle boîte avec la même version CentOS 6.1 ( C )

J'ai essayé les commandes mentionnées ci-dessus sur la boîte C, et copié le repo dans la boîte B. Pourtant, il a échoué. La raison: bien que les deux cases soient 6.1, celles-ci ne sont pas identiques ( uname -r renvoie des chaînes différentes).

Yum ne télécharge pas les dépendances, si celles-ci sont déjà installées. Donc, mon dépôt ne contenait pas certaines des dépendances (y compris OpenJDK). Ainsi, lorsque j'essaie d'installer sur Box B, cela échoue.

Assez frustrant !!!

Mais j'ai trouvé la commande « repotrack » ici .

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

J'ai beaucoup plus de fichiers qu'avec miam, j'espère que ça fera l'affaire.

Je mettrai à jour, une fois que j'essaierai d'installer.

MISE À JOUR

Le repotrack de commande n'a pas fonctionné pour moi. Lorsque j'ai essayé d'installer à partir du référentiel créé avec 'repotrack', j'ai obtenu les erreurs suivantes:

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

J'ai essayé de supprimer ces deux fichiers du dossier et de reconstruire le référentiel avec 'createrepo'. Cela a donné un autre ensemble d'erreurs.

Je ne sais pas quelles options j'ai en ce moment ...

Atul Acharya
la source
Il n'y a pas de "6.1" CentOS. c'est juste CentOS 6 à jour jusqu'au moment où RHEL 6.1 a été coupé, probablement avec beaucoup de mises à jour depuis.
vonbrand

Réponses:

1

Si vous devez faire beaucoup de choses, vous voudrez peut-être prendre le temps de configurer Spacewalk . Il automatisera la création du référentiel et le remplira avec les packages appropriés (ou, si vous le souhaitez, tous). Sans parler de tout le reste ...

Michael Hampton
la source
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Vous devez demander à yum de télécharger à partir du référentiel de la même version que la machine cible (6.1)

Assurez-vous également que la machine (6.3) qui effectuera le téléchargement n'a pas déjà installé certaines des dépendances manquantes sur la machine cible (6.1)

rkosegi
la source
Cela ne fonctionnera pas nécessairement, car il obtiendra les packages nécessaires à l'installation sur ce système . Cela pourrait très bien être un ensemble très différent de celui requis sur une machine non mise en réseau (probablement obsolète).
vonbrand
0

Si vous ne pouvez pas obtenir une machine "propre", vous devez soit rechercher manuellement les pièces manquantes avec yum providesou

vous devez passer par vos rpms qui sont déjà en vous repo et d' interrogation de leurs dépendances: rpm -qp --requires RPM. Si cette liste révèle quelque chose de nouveau qui ne fait pas déjà partie de votre repo, vous devez l'ajouter.

Nils
la source