Come trasferisco i pacchetti e le impostazioni installati da una distribuzione a un'altra?


15

Ho esplorato l'apprendimento e il sistema Linux tramite VirtualBox per alcuni mesi e ho deciso che volevo renderlo il mio sistema operativo principale e installarlo sul mio disco rigido. Ho un numero di file, pacchetti e impostazioni (come le modifiche a .bashrc) che vorrei trasferire quando lo installo direttamente sul mio HDD, quindi come posso farlo? Inoltre, in questo momento sto eseguendo Ubuntu se decido di passare a una Debian o RPM simile, la distribuzione basata su RHEL sarebbe lo stesso processo? Quali considerazioni dovrei prendere in considerazione se ce ne sono?


Ubuntu è un derivato Debian. Tutti i derivati ​​Debian sono molto simili, poiché nei pacchetti tutti hanno lo stesso nome, la gestione dei pacchetti, la configurazione ecc. E tutti molto simili. Tuttavia, le distribuzioni di Red Hat come Fedora, CentOS ecc. Non sono così simili in questioni come la gestione dei pacchetti, sebbene siano sostanzialmente lo stesso software. Tuttavia, dovresti essere in grado di copiare per lo più impostazioni / configurazione ecc. Dai sistemi operativi della famiglia Debian a quelli della famiglia RH.
Faheem Mitha,

Risposte:


31

La gestione dei pacchetti è uno dei principali fattori di differenziazione tra le distribuzioni. Tra distribuzioni non correlate, non sarai in grado di fare nulla di automatico. Distribuzioni diverse suddividono il software in diversi set di pacchetti e usano nomi diversi.

Tra macchine che eseguono la stessa versione della stessa distribuzione, è possibile ottenere un'installazione simile riproducendo l'elenco dei pacchetti installati. Sui sistemi che usano apt, come Debian e derivati ​​(Ubuntu, Mint, ...), usano apt-clone. Vedi Come posso replicare le selezioni dei pacchetti installati da un sistema Debian a un altro? (Debian Wheezy) per i comandi esatti. In poche parole, sulla vecchia macchina:

sudo apt-get install apt-clone
apt-clone clone foo

Copia foo.apt-clone.tar.gzsulla nuova macchina ed esegui

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-clonepuò funzionare tra distribuzioni correlate, ad esempio Debian e Ubuntu. Utilizzare restore-new-distroinvece restoreche in quel caso. Se ciò non riesce, utilizzare il metodo manuale con dpkg --get-selectionse apt-mark, quindi giocherellare con l'elenco dei pacchetti fino a quando apt è soddisfatto.

Per le tue impostazioni, è più semplice: basta copiare i file dot dalla tua directory home. Di norma, configura elementi non correlati all'hardware nel tuo account, non a livello di sistema; ciò faciliterà la loro copia su un'altra macchina.


Il vantaggio rispetto alla seconda risposta di seguito è che questo metodo è più veloce perché la connessione Internet lenta viene ignorata e USB 3 più veloce può essere utilizzato. Potrebbero esserci anche altri vantaggi ???
WinEunuuchs2Unix,

@ WinEunuuchs2Unix L'elenco dei pacchetti è di pochi kilobyte. Il trasferimento su Internet richiede meno tempo rispetto alla ricerca di un dongle USB, per non parlare del montaggio e della selezione dei file da copiare e così via.
Gilles 'SO- smetti di essere malvagio' il

@ Gilles mi sciocca. Pensavo foo.apt-clone.tar.gzfosse una palla tar tar compressa di tutti i binari installati. Non avevo capito che era semplicemente un elenco di pacchetti installati. Include anche i numeri di versione trattenuti?
WinEunuuchs2Unix,

Molti errori.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix,

@ WinEunuuchs2Unix Penso che apt-clone includa tutto lo stato dpkg compresi i pacchetti trattenuti. Si noti che se si desidera clonare un'installazione completa, è una questione completamente diversa: il punto di apt-clone è quando si ha più larghezza di banda tra la macchina 2 e un mirror del pacchetto rispetto tra la macchina 1 e la macchina 2 (o larghezza di banda meno costosa, in che non vuoi tenere la macchina 1 troppo occupata mentre stai configurando la macchina 2). Apt-clone funziona al meglio quando tutte le versioni del pacchetto sul computer di origine sono installabili.
Gilles 'SO- smetti di essere malvagio' il

10

Se rimani nella famiglia Debian, sì, puoi trasferirli molto facilmente. Basta elencare i pacchetti attualmente installati, salvarli in un file e quindi leggere quel file per reinstallarli:

  1. Salvare i pacchetti installati nel file installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. Nella tua distro basata su Debian appena installata, installa i pacchetti salvati:

    sudo apt-get install $(cat installed)
    

In alternativa, è possibile utilizzare uno strumento GUI per questo. Mint ne ha uno molto carino chiamato mintbackup:

screenshot di mintbackup

Quindi, dalla nuova installazione:

un altro screenshot di mintbackup


Sarebbe dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgequivalente? Inoltre, che ne dici di usare yum install alien su RHEL / Fedora / CentOS?
Sergiy Kolodyazhnyy,

1
Non solo riprodurre le selezioni, riprodurre l'elenco dei pacchetti installati automaticamente, altrimenti diventa disordinato. C'è apt-cloneora, che automatizza questo. Vedi unix.stackexchange.com/questions/191662/…
Gilles 'SO- smetti di essere malvagio'

Sarebbe utile copiare anche i pacchetti in attesa. vale a dire che Conky 1.9 è tenuto in modo che Conky 1.10 non rovini le cose. Parte della risposta sarebbe nel thread AskUbuntu .
WinEunuuchs2Unix,

1
Questa risposta è più veloce della risposta più votata e non ha la moltitudine di messaggi di errore come apt-clonesopra. 1/3 di quegli errori postati nel commento sopra.
WinEunuuchs2Unix,

Hai un bell'aspetto, ma è possibile usare mintbackup in Ubuntu 18.04?
WebComer

1

Le impostazioni sono generalmente memorizzate in /etc/. etckeeper può essere utile. Il suo scopo principale è quello di trasformarsi /etc/in un repository git, ma filtra anche alcune parti che non vorresti copiare, se capisco bene. Quindi, se hai familiarità git, potresti stare meglio usando etckeeperper unire le tue modifiche alla nuova installazione.

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.