Remover pacotes da fonte não confiável e reinstalá-los

4

Eu tenho um Kali Linux instalado recentemente, mas devido a sua seleção inflexível de espelho, todos os pacotes deb são baixados de um espelho que eu 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?

    
por Abel Cheung 16.10.2014 / 08:02

3 respostas

11

Como Alex apontou:

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. O segundo, 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. Existe outro jeito com o aptitude:

sudo aptitude --reinstall install '~i'

A pesquisa ~i de "pacotes instalados".

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

    
por 20.10.2014 / 10:12
0

As respostas aqui me ajudaram a resolver o problema, essa solução provavelmente não é a mais eficiente, mas realiza o trabalho.

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

Eu usei esse script e fui solicitado de vez em quando a dar um Y (es) Então o roteiro continuou. Mas porque leva um bom tempo, isso faz com que o tempo seja concluído por muito mais tempo. Eu mudei o script com a inserção de --yes force-yes Recomende também forçar a aceitação automática de def / old config

#!/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
    
por 31.08.2016 / 11:25