Удалите пакеты из ненадежного источника и переустановите их.

Удалите пакеты из ненадежного источника и переустановите их.

Недавно я установил Kali Linux, но из-за негибкого выбора зеркала все deb-пакеты загружаются с зеркала, которому я не доверяю. Можно ли указать apt / dselect повторно загрузить и переустановить все пакеты, предполагая, что sources.list был обновлен для использования нового зеркала?

решение1

Как отметил Алекс:

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

Первый гарантирует, что кэш apt пуст. Таким образом, apt-get должен будет загрузить пакеты из репозиториев. Второй, сначала вам нужен список всех установленных пакетов, что и делает часть $(...), а затем вы используете apt-get, чтобы переустановить их. Есть еще один способ с aptitude:

sudo aptitude --reinstall install '~i'

Поиск ~i«установленных пакетов».

При использовании обоих методов вы закончите без каких-либо автоматически установленных пакетов, поэтому вам необходимо использовать apt-mark showauto > packagesперед этим и sudo apt-mark auto $(cat packages)переустановить список.

решение2

Ответы здесь помогли мне решить проблему. Это решение, возможно, не самое эффективное, но оно выполняет свою работу.

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

решение3

Я использовал этот скрипт, и меня время от времени просили ответить «Да» (Yes) Затем скрипт продолжил работу. Но поскольку это занимает довольно много времени, это значительно увеличивает время выполнения. Я изменил скрипт, вставив « --yes force-yes Recommend forcing automatic def/old config accept» также

#!/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

Связанный контент