從不受信任的來源刪除軟體包並重新安裝

從不受信任的來源刪除軟體包並重新安裝

我最近安裝了一個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

相關內容