Ubuntu, come configurare una nuova macchina come una esistente


27

Ho una macchina configurata con le app di cui ho bisogno e mi piacerebbe installarla su una nuova scatola di Ubuntu.

Esiste uno script che elencherà tutte le app installate, in modo che io possa differire tra le caselle e quindi aggiungere gli elementi mancanti?

Grazie in anticipo, Chris

Risposte:


18

Oltre ai trucchi dpkg menzionati da pjz, potresti anche voler guardare etckeeper ( tutorial ) - un'app che mette il tuo / etc / * sotto controllo della versione, rendendo più facile trovare tutte le modifiche che hai fatto e replicarle su altre server.

Inoltre, per un elenco più breve di quello prodotto dal metodo di pjz, puoi usare

$ deborphan -a --no-show-section > /tmp/mypackagelist

Questo ti darà un elenco di pacchetti che installeranno tutti gli altri pacchetti richiesti come dipendenze. Può essere utile se vuoi davvero guardare l'elenco. (dpkg --get-selections produrrà un elenco loooong ). Inoltre l'elenco è abbastanza breve da poter aggiungere nuove righe e commentare le voci con '#'. Quindi, quando si installano i pacchetti aggiuntivi, è possibile farlo

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

In questo modo, se ci sono alcuni pacchetti che si desidera installare solo su alcuni computer, non è necessario eliminarli del tutto dall'elenco dei pacchetti.


etckeeper sembra davvero interessante (+1).
jkp,

17
dpkg --get-selections >/tmp/mypackagelist

dovrebbe fare il trucco. Quindi, dopo esserti assicurato che la tua /etc/apt/sources.list sulla nuova macchina abbia lo stesso set di voci della vecchia macchina, copia la lista dei mypackag sulla nuova macchina ed esegui:

cat mypackagelist | xargs apt-get -y install 

e dovresti essere bravo ad andare.

Nota che la riga dpkg --get-selections è anche una buona informazione da inserire nella tua / etc / dir ocassionalmente - significa che non devi preoccuparti di eseguire il backup / bin / e / usr / bin / e così perché sai quali pacchetti sono nel sistema.


Sì, Jeff, ma che ne dici delle modifiche ai file di configurazione? che ne dite delle opzioni di dpkg-reconfigure? che ne dici di nomi host ... utenti, condivisioni, montaggi ... Vedi la mia risposta su ddmuggito
elcuco

2

I forum di Ubuntu hanno una buona risposta

  1. Sulla vecchia macchina: $ dpkg --get-selections> software installato
    • Viene visualizzato l'elenco delle app installate
  2. Sulla nuova macchina: $ dpkg --set-selections
    • Questo imposta la nuova macchina per installare i pacchetti non attualmente installati sulla nuova macchina.
    • Potrebbe essere interessante vedere se la nuova macchina ha alcuni pacchetti non installati sulla vecchia macchina, quindi potresti trovare il comando dpkg --get-selections> sulla nuova macchina, e quindi usare diff per confrontare i file di output da entrambi.
  3. Infine, sul nuovo computer: $ dselect e i pacchetti verranno installati.

Alcuni collegamenti aggiuntivi dalla discussione sui forum:

  1. Non dimenticare le tue chiavi gpg (dallo stesso thread)
  2. Come installare tutti i pacchetti desiderati e disinstallare tutti i pacchetti indesiderati

2

I migliori comandi dpkg potrebbero essere [macchina originale]

dpkg --get-selections | grep -v deinstall > packages_list

quindi durante l'installazione [nuova macchina; dopo aver trasferito la lista_pacchetti]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade

1

Se non sei un fan della CLI (anche se dovresti davvero farlo), puoi utilizzare il gestore pacchetti Synaptic per salvare l'immagine dei pacchetti installati e utilizzare quel file (di nuovo tramite Synaptic) per caricare la nuova macchina. Sotto l'opzione file / salva marcature, c'è una casella chiamata "salva stato completo".


Penso che questo sia stato il metodo trovato da Cory
jbdavid,

1

Perché non stai solo clonando la macchina usando dd?


1
Questo. Basta clonare la macchina e cambiare il nome, è di gran lunga il modo più veloce per farlo.
pjc50,


1

L'uso di FSArchiver per replicare le macchine è perfettamente accettabile. Altrimenti, qui sono utili coppie di comandi, la prima metà delle quali puoi anche aggiungere al tuo cron di backup:

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

Le posizioni che dovresti replicare sono / etc e / var. I comandi sopra manipolano direttamente alcuni file in / var e alcuni file in / etc indirettamente tramite debconf. Otterrai lo stesso effetto semplicemente replicando quei sottotitoli ed eseguendo l'attitudine.


0

Immagino che Docker sarebbe il modo per farlo ora - definire i requisiti in un file Docker - è quindi possibile eseguirlo su qualsiasi host Docker.

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.