Remova pacotes de fontes não confiáveis ​​e reinstale-os

Remova pacotes de fontes não confiáveis ​​e reinstale-os

Eu tenho um Kali Linux instalado recentemente, mas devido à sua seleção inflexível de espelho, todos os pacotes deb são baixados de um espelho no qual não confio. É possível dizer ao apt/dselect para baixar novamente e reinstalar todos os pacotes, assumindo que o sources.list foi atualizado para usar o novo espelho?

Responder1

Como Alex destacou:

sudo apt-get clean
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f 1)

O primeiro garante que o cache do apt esteja vazio. Dessa forma, o apt-get precisará baixar os pacotes dos repositórios. A segunda, primeiro você precisa de uma lista de todos os pacotes instalados, que é o que a $(...)parte está fazendo, e então você está usando o apt-get para reinstalá-los. Há outra maneira com o aptitude:

sudo aptitude --reinstall install '~i'

A ~ibusca por "pacotes instalados".

Para ambos os métodos você terminará sem nenhum pacote instalado automaticamente, portanto você deve usar apt-mark showauto > packagesantes de fazer isso e sudo apt-mark auto $(cat packages)restabelecer a lista.

Responder2

As respostas aqui me ajudaram a resolver o problema. Esta solução provavelmente não é a mais eficiente, mas dá conta do recado.

#!/bin/bash
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get install --reinstall $package;
done

Responder3

Eu usei esse script e de vez em quando me pediam para dar um Y(es). Então o script continuou. Mas como demora um pouco, o tempo de conclusão é muito mais longo. Eu mudei o script inserindo --yes force-yes Recomendar forçando a aceitação automática de def/configuração antiga também

#!/bin/bash 
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --reinstall $package
done

informação relacionada