Me gustaría obtener una lista de los paquetes instalados en un sistema e instalarlos todos en otro sistema.
Sé que dpkg --get-selections
me puede dar una lista de todos los paquetes instalados en los que puedo canalizar en dpkg --set-selections
el sistema de destino. Sin embargo, algunos de los paquetes instalados son los que yo mismo construí localmente (usando, por ejemplo, checkinstall) y no están disponibles en los repositorios. El dpkg --set-selections
proceso fallará cuando no pueda encontrar estos paquetes en los repositorios.
Entonces, ¿hay alguna manera de filtrar la lista generada dpkg --get-selections
para que solo contenga paquetes cuya versión instalada actualmente esté disponible en mis repositorios actuales?
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