Como posso desinstalar todos os pacotes de uma fonte Debian?

8

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

  • remover todos os pacotes somente dessa fonte
  • reverter todos os pacotes para versões na (s) fonte (s) original (is)
  • alternativamente, faça uma lista de todos os pacotes dessa origem para que eu possa executar este procedimento manualmente

Como posso fazer isso?

    
por d3vid 31.10.2017 / 12:52

2 respostas

10

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

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

    
por 31.10.2017 / 12:58
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 da deb-multimedia.org. Mesmo resultado com dpkg-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

    
por 31.10.2017 / 14:16