从不受信任的来源删除软件包并重新安装

从不受信任的来源删除软件包并重新安装

我最近安装了Kali Linux,但由于其镜像选择不灵活,所有deb包都是从我不信任的镜像下载的。假设sources.list已更新为使用新镜像,是否可以告诉 apt / dselect 重新下载并重新安装所有软件包?

答案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

我使用了这个脚本,并且时不时地被要求给出一个 Y(es) 然后脚本继续。但由于需要相当长的时间,这使得完成时间更长。我更改了脚本并插入--yes force-yes Recommend 强制自动接受 def/旧配置

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

相关内容