Comment installer exactement les mêmes packages sur un autre ordinateur dans openSUSE?

8

Un autre ordinateur peut également être une machine virtuelle. Je ne peux pas faire de clonage de disque en raison de différences et de paramètres matériels.

J'ai l'ordinateur A, installé et en cours d'exécution, j'ai également l'ordinateur B. J'installerai le même système d'exploitation sur B, donc j'obtiendrais le même système de base.

Ensuite, à la main, j'ajouterai les mêmes référentiels que sur A.

Mais la dernière étape me dépasse - comment installer les mêmes packages que sur A? Notez que la version doit correspondre, pas seulement le nom du package.

Bien sûr, je recherche une méthode automatique, pas une installation manuelle une par une.

En effet, je devrais obtenir une configuration matérielle complètement différente, des paramètres propres (pas d'anciens mots de passe, etc.), mais une sélection de logiciels identique.

Question

Comment faire?

Contexte

Les packages (par version) sont disponibles mais ne sont pas les derniers. Le but est de faire une "copie" du système en cours d'exécution, de mettre à niveau les packages sur l'ordinateur B (copie), de tester si cela fonctionne, si oui, puis de mettre à niveau A. Avec chaque nouvelle version du système d'exploitation, je suis frappé par de nombreux bogues de régression, et Je dois le tester plus méthodiquement que le test en direct et la panique.

openSUSE 11.4

greenoldman
la source
les packages de l'ordinateur A sont-ils mis à jour au plus tard à partir des dépôts? (Je le demande car cela peut rendre la réponse plus courte et vous faciliter la vie).
Hanan N.
@Hanan N., non, ce serait plus facile je sais, c'est pourquoi j'ai fait le point sur les versions exactes.
greenoldman

Réponses:

3

On dirait que vous devez créer votre propre référentiel.

Mettez vos RPM dans la version souhaitée dans ce référentiel. Activez ensuite ces référentiels sur les deux machines (en tant que source d'installation) et installez les packages.

Nils
la source
Merci, je ne marque pas encore cela comme la solution, car peut-être que quelqu'un proposera une autre approche - comme faire la liste (rpm -qa) et installer ces mêmes paquets dans la version donnée sur une autre machine. Cependant, votre approche évolue mieux (téléchargement unique par package).
greenoldman
2

Étant donné qu'OpenSuse utilise des RPM, vous pouvez utiliser l' rpmutilitaire.

rpm -qarépertorie tous les packages actuellement installés sur votre système (une très longue liste). La liste comprend le nom du package, le numéro de version et l'architecture. Vous pouvez écrire la liste dans un fichier et donner le fichier à zypper sur le nouveau système.

Il y a de fortes chances que plusieurs packages soient déjà installés par défaut, mais zypper les ignorera et installera ceux dont vous avez besoin.

n0pe
la source
Eh bien, vous venez de copier mon commentaire afin que nous soyons d'accord dans l'ensemble, mais le diable est dans les détails - comment forcez-vous zypper à ne pas installer le paquet P, mais P-1.23, c'est-à-dire avec la version donnée? Parce que c'est crucial ici (par défaut, la sortie de rpm n'est PAS compatible avec le format d'entrée de zypper).
greenoldman
Pour mémoire, j'ai posté ceci avant de poster votre commentaire ou vous l'avez posté pendant que j'écrivais ma réponse. Quant à zypper, oui, vous pouvez utiliser la sortie de rpm -qacomme entrée pour zypper. Il comprend parfaitement le format de l'emballage. Je n'ai pas testé pour voir s'il obéit au numéro de version, mais cela dépend fortement du fait que les référentiels contiennent ou non des versions antérieures. Si les dépôts ne le font pas, alors vous ne pouvez pas faire grand-chose.
n0pe
Vous vous contredisez, "je n'ai pas testé pour voir s'il obéit au numéro de version" mais "il comprend parfaitement le format du paquet". Je précise donc - il ne prend pas en charge la sortie rpm. Afin de spécifier la version, vous devez ajouter un quantificateur, et c'est une partie délicate, car la dénomination du package est juste une convention, elle n'est forcée par aucun validateur. Voir: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages
greenoldman
1

La première liste tous les paquets installés et leurs versions dans la machine que vous essayez de créer un « clone » de: rpm -qa > /tmp/rpm.list.txt.

Copiez ensuite le /tmp/rpm.list.txtsur le système que vous essayez de transformer en un "clone" d'un autre système et exécutez zypper et alimentez-le la liste de packages que vous venez de créer: zypper install $(cat /tmp/rpm.list.txt)(ou partout où vous placez le fichier contenant la liste des packages du système source ).

Sami Laine
la source