Debian 使用 dpkg 安裝 Package, 但是此 Package 有很多其它相依性, 造成安裝完成後, 需要補 相依Package, 但 相依的Package 無法安裝, 而此 Package 也無法移除, 造成很大的困擾.
移除 Package, 使用 apt-get remove / dpkg -r 都移不掉的時後, 那就只好手動來做.
手動移除 deb Package 步驟
- 找出此 Package 相關安裝的檔案, 下述兩種都是列出 Package file list 的方法.
dpkg -L Package-Name (都砍掉)
cd /var/cache/apt/archives; dpkg -c Package-Name.deb - 將索引文件中的 Package 訊息刪除.
vim /var/lib/dpkg/status # 找到 "Package: Package-Name", 將此到下一個 Package: 開頭前的都刪除.
cd /var/lib/dpkg/info
rm -fr Package-Name.* # 一些 md5/list/shlibs 等 - 重建索引
apt-get update
大多數應該只要執行 2, 3 步驟即可, 1 沒砍乾淨是比較無所謂. (1 砍的時後要注意有些 Package 可能會共用設定之類的)
如果 Package 本身要安裝, 只是要補其它相依性, 而造成無法安裝的問題, 那只要執行 2, 3 的步驟, 然後補足相依性後,再直接安裝即可(相同檔案會被蓋掉, 所以還是一樣的).