Come installare esattamente gli stessi pacchetti su un altro computer in openSUSE?


8

Un altro computer può essere anche una macchina virtuale. Non riesco a fare il clone del disco a causa delle differenze e delle impostazioni dell'hardware.

Ho il computer A, installato e funzionante, ho anche il computer B. Installerò lo stesso sistema operativo su B, quindi otterrei lo stesso sistema di base.

Quindi a mano aggiungerò gli stessi repository di A.

Ma l'ultima fase è oltre me: come installare gli stessi pacchetti di A? Si noti che la versione deve corrispondere, non solo il nome del pacchetto.

Certo che sto cercando un modo automatico, non l'installazione manuale uno per uno.

In effetti, dovrei ottenere una configurazione hardware completamente diversa, impostazioni pulite (nessuna vecchia password, ecc.), Ma una selezione software identica.

Domanda

Come farlo?

sfondo

I pacchetti (per versione) sono disponibili ma non sono gli ultimi. Il punto è fare una "copia" del sistema in esecuzione, aggiornare i pacchetti sul computer B (copia), verificare se funziona, se sì, quindi aggiornare A. Con ogni nuova versione del sistema operativo sono colpito da molti bug di regressione e Devo testarlo più metodicamente, che test-live e panico.

openSUSE 11.4


i pacchetti del computer A sono aggiornati all'ultimo dei repository? (te lo chiedo perché può rendere la risposta più breve e la tua vita più facile).
Hanan N.

@Hanan N., no, sarebbe più facile lo so, ecco perché ho sottolineato le versioni esatte.
Greenoldman,

Risposte:


3

Sembra che tu debba costruire il tuo repository.

Inserisci i tuoi RPM nella versione desiderata in quel repository. Quindi attivare questi repository su entrambe le macchine (come origine dell'installazione) e installare i pacchetti.


Grazie, non lo segnerò come soluzione (ancora), perché forse qualcuno verrà fuori con un altro approccio - come, fare la lista (rpm -qa) e installare quegli stessi pacchetti in una data versione su un'altra macchina. Tuttavia il tuo approccio si ridimensiona meglio (download singolo per pacchetto).
Greenoldman,

2

Visto che OpenSuse usa gli RPM, puoi usare l' rpmutilità.

rpm -qaelencherà tutti i pacchetti attualmente installati sul tuo sistema (un elenco molto lungo). L'elenco include il nome del pacchetto, il numero di versione e l'architettura. È possibile scrivere l'elenco in un file e fornire a zypper il file sul nuovo sistema.

È probabile che ci saranno diversi pacchetti che sono già installati di default, ma zypper li salterà e installerà quelli di cui hai bisogno.


Bene, hai appena copiato il mio commento, quindi siamo d'accordo sul quadro generale, ma il diavolo è nei dettagli - come costringi zypper a non installare il pacchetto P, ma P-1.23, cioè con la versione fornita? Perché questo è cruciale qui (di default l'output di rpm NON è compatibile con il formato di input di zypper).
Greenoldman,

Per la cronaca, l'ho pubblicato prima di pubblicare il tuo commento o di averlo pubblicato mentre stavo scrivendo la mia risposta. Per quanto riguarda zypper, sì, puoi usare l'output di rpm -qacome input per zypper. Comprende perfettamente il formato del pacchetto. Non ho testato per vedere se obbedisce al numero di versione, ma dipende fortemente dal fatto che i repository contengano o meno versioni precedenti. Se i repository non lo fanno, non c'è molto che puoi fare al riguardo.
n0pe

Ti contraddici, "Non ho testato per vedere se obbedisce al numero di versione" ma "Comprende perfettamente il formato del pacchetto". Quindi chiarisco: non supporta l'uscita rpm. Per specificare la versione devi aggiungere un quantificatore, e questa è una parte difficile, poiché la denominazione del pacchetto è solo una convenzione, non è forzata da alcun validatore. Vedi: en.opensuse.org/SDB:Zypper_usage_11.3#Selecting_packages
greenoldman

1

In primo luogo elencare tutti i pacchetti installati e le loro versioni della macchina che si sta cercando di creare un "clone" di: rpm -qa > /tmp/rpm.list.txt.

Quindi copia il /tmp/rpm.list.txtnel sistema che stai cercando di trasformare in un "clone" di un altro sistema ed esegui zypper e alimentalo con l'elenco dei pacchetti che hai appena creato: zypper install $(cat /tmp/rpm.list.txt)(o ovunque tu metta il file contenente l'elenco di pacchetti dal sistema di origine ).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.