Comment puis-je désinstaller tous les paquets d'une source Debian?

8

J'ai précédemment ajouté des sources externes à, /etc/apt/sources.list.dmais je souhaite maintenant supprimer l'une d'entre elles. Je tiens également à:

  • supprimer tous les packages uniquement de cette source
  • rétablir tous les packages dans les versions de mes sources d'origine
  • sinon, faites une liste de tous les paquets de cette source afin que je puisse effectuer cette procédure manuellement

Comment puis-je faire ceci?

david.libremone
la source

Réponses:

11

Selon la configuration du référentiel que vous souhaitez supprimer, apt list --installedpeut fournir suffisamment d'informations pour identifier les packages dont vous avez besoin pour désinstaller ou rétrograder. Une autre option, si le référentiel définit une «origine» unique, est d'utiliser aptitude search '~i ~Oorigin'(en remplaçant originle cas échéant).

(Il s'agit d'une réponse générique; si vous modifiez votre question pour spécifier exactement quelle source vous souhaitez supprimer, je peux ajouter une réponse spécifique.)

Stephen Kitt
la source
cela semble prometteur, pourrais-je obtenir une liste d'origines en quelque sorte?
david.libremone
2
Oui, apt-cache policyvous montrera les origines de tous vos référentiels configurés (recherchez o=dans la sortie).
Stephen Kitt
3

Ou avec 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

Par exemple

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

Retour:

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

Cela me montre les paquets de deb-multimedia.org. Même résultat avecdpkg-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
la source