Wie kann ich alle Pakete von einer Debian-Quelle deinstallieren?

8

Ich habe zuvor einige externe Quellen hinzugefügt, /etc/apt/sources.list.dmöchte aber jetzt eine davon entfernen. Ich will auch:

  • Entfernen Sie alle Pakete ausschließlich aus dieser Quelle
  • Setzen Sie alle Pakete auf Versionen in meinen Originalquellen zurück.
  • Alternativ können Sie eine Liste aller Pakete aus dieser Quelle erstellen, damit ich diesen Vorgang manuell ausführen kann

Wie kann ich das machen?

david.libremone
quelle

Antworten:

11

Abhängig von der Konfiguration des Repositorys, das Sie entfernen möchten, werden apt list --installedmöglicherweise genügend Informationen bereitgestellt, um Pakete zu identifizieren, die Sie deinstallieren oder herunterstufen müssen. Eine andere Option, wenn das Repository einen eindeutigen „Ursprung“ definiert, ist die Verwendung aptitude search '~i ~Oorigin'( origingegebenenfalls Ersetzen ).

(Dies ist eine allgemeine Antwort. Wenn Sie Ihre Frage bearbeiten , um genau anzugeben, welche Quelle Sie entfernen möchten, kann ich eine bestimmte Antwort hinzufügen.)

Stephen Kitt
quelle
das sieht vielversprechend aus, könnte ich irgendwie eine Liste der Ursprünge bekommen?
David.Libremone
2
Ja, apt-cache policyzeigt Ihnen die Ursprünge für alle konfigurierten Repositorys an (suchen Sie o=in der Ausgabe nach).
Stephen Kitt
3

Oder mit dpkg:

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i yourkeyword

Zum Beispiel

dpkg -l | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | grep -i multimedia

kehrt zurück:

audacious                                1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins                        1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main     
audacious-plugins-data                   1:3.8.2-dmo1                         http://www.deb-multimedia.org        stretch/main    
snipp

Dies zeigt mir die Pakete von deb-multimedia.org. Gleiches Ergebnis mitdpkg-query -W -f='${Section}\t\t${Package}\n' | awk '/^.i/ {print $2}' | xargs apt-cache policy | awk '/^[a-z0-9.\-]+:/ {pkg=$1}; /\*\*\*/ {OFS="\t"; ver=$2; getline; print pkg,ver,$2,$3}'|grep -v /var/lib/dpkg/status| sed -e 's/://'|awk '{printf "%-40s %-36s %-36s %-16s \n",$1,$2,$3, $4}' | egrep -i multimedia

fedorqui
quelle