J'ai un serveur avec une connectivité nette, où je peux utiliser "yum install $ PACKAGE".
Je veux une commande yum, yum cache-rpms $PACKAGE $DIRECTORY
telle que tous les fichiers RPM requis seront téléchargés dans $ DIRECTORY, qui aura également un fichier ( Install.sh
) indiquant l'ordre dans lequel installer ces RPM, sur de nombreux autres serveurs sans connectivité nette.
Install.sh
peut même être un script shell, qui a le même comportement que yum install $PACKAGE
, sauf qu'il n'utilisera pas le réseau, mais seulement $DIRECTORY
.
Possible?
Je recherche une solution générale où yum et RPM sont disponibles, mais pour la spécificité: c'est sur un ensemble de serveurs CENTOS 6.7.
Réponses:
Voici un exemple spécifique utilisant "httpd" comme package pour télécharger et installer. Ce processus a été testé sur CentOS6 et CentOS7.
Installez le matériel dont vous avez besoin et faites un endroit pour mettre les RPM téléchargés:
Téléchargez les RPM. Cela utilise l' astuce d'installation suggérée ici pour forcer un téléchargement complet de toutes les dépendances car rien n'est installé dans cette racine vide. Yum va créer des métadonnées là-dedans, mais nous allons tout jeter. Notez que pour CentOS7
releasever
serait "7".Oui, c'était la petite version. Vous devriez avoir vu la taille des téléchargements du repo complet!
Générez les métadonnées nécessaires pour transformer notre nouvelle pile de RPM en un repo YUM et nettoyer ce dont nous n'avons plus besoin:
Configurez le répertoire de téléchargement en tant que dépôt. Notez que pour CentOS7, le gpgkey serait nommé "7" au lieu de "6":
Pour vérifier les dépendances manquantes:
Je n'ai pas compris pourquoi sur CentOS7 cela signale des choses comme
libssl.so.10(libssl.so.10)(64bit)
manquanthttpd-tools
quandopenssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(le fournisseur de cette bibliothèque) est clairement présent dans le répertoire. Pourtant, si vous voyez quelque chose qui manque manifestement, cela pourrait être une bonne occasion de revenir en arrière et de l'ajouter en utilisant la mêmeyum install --downloadonly
méthode ci-dessus.Lorsque vous êtes hors ligne ou après avoir copié le
/var/tmp/httpd
répertoire du référentiel sur l'autre serveur, configurez-y le référentiel:Espérons qu'aucune dépendance ne manque!
la source
Il semble que vous demandiez
yumdownloader
ce qui est contenu dans le paquetyum-utils
. Il y a déjà quelques questions et réponses à ce sujet, voir par exemple Télécharger toutes les dépendances avec yumdownloader, même si elles sont déjà installées? ou Comment trouver les URL des packages avec Yum?yumdownloader
téléchargera les packages, bien qu'il ne génère pas de fichierInstall.sh
car l'ordre peut être déterminé par yum lui-même, vous pouvez donc installer les packages sur la zone cible viayum install ./*rpm
dans le dossier avec vos packages téléchargés (qui doit inclure toutes les dépendances par rapport à un installation de base - voir le premier lien ci-dessus concernantrepotrack
)la source
J'en avais besoin plusieurs fois, j'ai donc automatisé la réponse @Steve Bonds. Assurez-vous simplement de définir
PKG
le package à installer sur les deux machines (Clause de non-responsabilité: pour CentOS 7. Pour CentOS 6, modifiez l' emplacement--releasever
etCentOS-7
.machine en ligne
sur la machine hors ligne:
la source
-y
à la dernière commande pour confirmer l'installation des packages lorsqu'ils sont exécutés en arrière-plan.