Sincronizzare i pacchetti installati su due macchine Debian
Passaggi manuali
- Sulla macchina sorgente, esportare la lista pacchetti:
dpkg --get-selections "*" > select.src
- Sulla macchina destinazione, importare la lista pacchetti:
sudo dpkg --set-selections < select.src
- Applicare le selezioni dei pacchetti. Verranno installati e disinstallati i pacchetti:
sudo apt-get -u --purge dselect-upgrade
I PACCHETTI IN PIÙ GIÀ INSTALLATI CHE NON INTERFERISCONO CON LE DIPENDENZE, NON VERRANNO DISINSTALLATI.
- Cancellare le configurazioni dei pacchetti installati:
sudo dpkg --purge $(dpkg -l | grep ^rc | tr -s ' ' | cut -f2 --delim=' ')
Controllare che la lista pacchetti sia uguale:
cd /tmp dpkg --get-selections > select.dst vimdiff select.src select.dst
Esecuzione batch
Questi comandi
- prelevano la lista sorgente
- confrontano visualmente le liste sorgente e destinazione
- sincronizzano i pacchetti
- riconfronta le liste
export SRCSRV="mp.galimberti.net"
cat > /tmp/syncpkg <<'EOFile' #!/bin/bash cd /tmp ssh $SRCSRV 'dpkg --get-selections' > select.REM ssh $SRCSRV 'dpkg --get-selections "*"' > select.SRC dpkg --get-selections > select.LOC vimdiff select.REM select.LOC sudo dpkg --set-selections < select.SRC sudo apt-get -u --purge dselect-upgrade for PKG in $(dpkg -l | grep ^rc | tr -s ' ' | cut -f2 --delim=' '); do dpkg --purge $PKG; done dpkg --get-selections > select.NEW vimdiff select.REM select.NEW EOFile chmod +x /tmp/syncpkg
sudo /tmp/syncpkg