Come posso disinstallare tutti i pacchetti da una fonte Debian?


8

In precedenza ho aggiunto alcune fonti esterne /etc/apt/sources.list.dma ora desidero rimuoverne una. Io voglio anche:

  • rimuove tutti i pacchetti esclusivamente da quella fonte
  • ripristina tutti i pacchetti alle versioni nelle mie fonti originali
  • in alternativa, creare un elenco di tutti i pacchetti da questa fonte in modo da poter eseguire questa procedura manualmente

Come posso fare questo?

Risposte:


11

A seconda della configurazione del repository che si desidera rimuovere, apt list --installedpotrebbe fornire informazioni sufficienti per identificare i pacchetti che è necessario disinstallare o eseguire il downgrade. Un'altra opzione, se il repository definisce un "Origine" univoco, è quella di utilizzare aptitude search '~i ~Oorigin'(sostituendo origincome appropriato).

(Questa è una risposta generica; se modifichi la tua domanda per specificare esattamente quale fonte desideri rimuovere, posso aggiungere una risposta specifica.)


questo sembra promettente, potrei ottenere un elenco di origini in qualche modo?
david.libremone,

2
Sì, apt-cache policyti mostrerà le origini di tutti i tuoi repository configurati (cerca o=nell'output).
Stephen Kitt,

3

O con 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

Per esempio

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

ritorna:

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

Questo mi mostra i pacchetti da deb-multimedia.org. Stesso risultato condpkg-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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.