Soluzione 1:
Oltre ai trucchi dpkg menzionati da pjz, potresti anche voler dare un'occhiata a etckeeper (tutorial ) - un'app che mette il tuo /etc/* sotto il controllo della versione, rendendo più facile trovare le modifiche che hai fatto e replicarle ad altri 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 effettivamente consultare l'elenco. (dpkg --get-selections produrrà un moooolto elenco). Inoltre l'elenco è abbastanza breve da poter aggiungere nuove righe e commentare le voci con '#'. Quindi quando installi i pacchetti extra puoi farlo
$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y
In questo modo, se ci sono alcuni pacchetti che desideri installare solo su alcune macchine, non devi eliminarli del tutto dall'elenco dei pacchetti.
Soluzione 2:
dpkg --get-selections >/tmp/mypackagelist
dovrebbe fare il trucco. Quindi, dopo esserti assicurato che il tuo /etc/apt/sources.list sulla nuova macchina abbia lo stesso set di voci della vecchia, copia mypackagelist sulla nuova macchina ed esegui:
cat mypackagelist | xargs apt-get -y install
e dovresti essere a posto.
Nota che la riga dpkg --get-selections è anche una buona informazione da inserire nel tuo /etc/dir occasionalmente - significa che non devi preoccuparti di eseguire il backup di /bin/ e /usr/bin/ e simili perché sai quali pacchetti ci sono nel sistema.
Soluzione 3:
Ubuntu Forums ha una buona risposta
- Sulla vecchia macchina:$ dpkg --get-selections> software-installato
- Questo ottiene il tuo elenco di app installate
- 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.
- Infine, sulla nuova macchina:$ dselect ei pacchetti verranno installati.
Alcuni collegamenti aggiuntivi dalla discussione nei forum:
- Non dimenticare le tue chiavi gpg (dalla stessa discussione)
- Come installare tutti i pacchetti desiderati e disinstallare tutti i pacchetti indesiderati
Soluzione 4:
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