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?

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.)


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.