Como posso desinstalar todos os pacotes de uma fonte Debian?

8

Eu adicionei anteriormente algumas fontes externas, /etc/apt/sources.list.dmas agora quero remover uma delas. Eu também quero:

  • remova todos os pacotes somente dessa fonte
  • reverter todos os pacotes para versões nas minhas fontes originais
  • alternativamente, faça uma lista de todos os pacotes dessa fonte para que eu possa executar este procedimento manualmente

Como posso fazer isso?

david.libremone
fonte

Respostas:

11

Dependendo da configuração do repositório que você deseja remover, apt list --installedpode fornecer informações suficientes para identificar os pacotes necessários para desinstalar ou fazer o downgrade. Outra opção, se o repositório definir uma "Origem" exclusiva, é usar aptitude search '~i ~Oorigin'(substituindo originconforme apropriado).

(Esta é uma resposta genérica; se você editar sua pergunta para especificar exatamente qual fonte deseja remover, eu posso adicionar uma resposta específica.)

Stephen Kitt
fonte
isso parece promissor, eu poderia obter uma lista de origens de alguma forma?
David.libremone
2
Sim, apt-cache policymostrará as origens de todos os seus repositórios configurados (procure o=na saída).
Stephen Kitt
3

Ou com o 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

Por exemplo

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

retorna:

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

Isso me mostra os pacotes do deb-multimedia.org. Mesmo resultado comdpkg-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
fonte