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