Vorrei ottenere un elenco di pacchetti installati su un sistema e installarli tutti su un altro sistema.
So che dpkg --get-selections
può darmi un elenco di tutti i pacchetti installati che posso convogliare dpkg --set-selections
sul sistema di destinazione. Tuttavia, alcuni dei pacchetti installati sono quelli che ho creato localmente (usando ad esempio checkinstall) e non sono disponibili dai repository. Il dpkg --set-selections
processo fallirà quando non è possibile trovare questi pacchetti nei repository.
Quindi c'è un modo in cui posso filtrare l'elenco generato da in dpkg --get-selections
modo che contenga solo pacchetti la cui versione attualmente installata è disponibile nei miei repository attuali?
total=$(dpkg --get-selections '*'|wc -l); i=0; dpkg --get-selections '*' | while read line; do i=$(($i+1)); apt-cache policy $(echo "$line" | cut -f1 ) | grep -q 'http://' && echo "$i/$total $line"; echo $line>>/var/tmp/dpkg-selection.list; done