Ich möchte eine Liste der auf einem System installierten Pakete erhalten und alle auf einem anderen System installieren.
Ich weiß, dpkg --get-selections
dass ich dadurch eine Liste aller installierten Pakete erhalten kann, in die ich dpkg --set-selections
auf dem Zielsystem einbinden kann. Einige der installierten Pakete sind jedoch solche, die ich selbst lokal erstellt habe (z. B. mit checkinstall) und die nicht in den Repositorys verfügbar sind. Der dpkg --set-selections
Prozess schlägt fehl, wenn diese Pakete nicht in den Repositorys gefunden werden können.
Gibt es eine Möglichkeit, die von generierte Liste dpkg --get-selections
so zu filtern , dass sie nur Pakete enthält, deren aktuell installierte Version in meinen aktuellen Repositorys verfügbar ist?
quelle
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
Verwenden Sie den folgenden Befehl
Es wird eine Datei namens installierte Software in Ihrem Home-Verzeichnis erstellt
auf dem neuen System
Dadurch wird die Auswahl gelesen und installiert
quelle