Entfernen Sie Pakete aus nicht vertrauenswürdigen Quellen und installieren Sie sie erneut

Entfernen Sie Pakete aus nicht vertrauenswürdigen Quellen und installieren Sie sie erneut

Ich habe vor kurzem Kali Linux installiert, aber aufgrund der unflexiblen Spiegelauswahl werden alle Deb-Pakete von einem Spiegel heruntergeladen, dem ich nicht vertraue. Ist es möglich, apt/dselect anzuweisen, alle Pakete erneut herunterzuladen und neu zu installieren, vorausgesetzt, dass sources.list aktualisiert wurde, um den neuen Spiegel zu verwenden?

Antwort1

Wie Alex betonte:

sudo apt-get clean
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f 1)

Die erste Methode stellt sicher, dass der Cache von Apt leer ist. Auf diese Weise muss Apt-get die Pakete aus den Repositories herunterladen. Die zweite Methode erfordert zunächst eine Liste aller installierten Pakete, was das $(...)Teil auch tut, und dann verwenden Sie Apt-get, um sie neu zu installieren. Es gibt noch eine andere Möglichkeit mit Aptitude:

sudo aptitude --reinstall install '~i'

Die ~iSuche nach „installierten Paketen“.

Bei beiden Methoden werden am Ende keine automatisch installierten Pakete angezeigt. Sie müssen daher apt-mark showauto > packagesvorher sudo apt-mark auto $(cat packages)die Liste wiederherstellen und verwenden.

Antwort2

Die Antworten hier haben mir geholfen, das Problem zu lösen. Diese Lösung ist wahrscheinlich nicht die effizienteste, aber sie erfüllt ihren Zweck.

#!/bin/bash
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get install --reinstall $package;
done

Antwort3

Ich habe dieses Skript verwendet und wurde von Zeit zu Zeit gebeten, ein Ja einzugeben. Dann ging das Skript weiter. Da es aber ziemlich lange dauert, wird die Zeit bis zur Fertigstellung dadurch viel länger. Ich habe das Skript geändert, indem ich --yes force-yes Recommend eingefügt habe, um auch die automatische Annahme der Def/alten Konfiguration zu erzwingen.

#!/bin/bash 
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --reinstall $package
done

verwandte Informationen