之前有看到站友有提過類似的問題,就是apt-get不能更新也不能移除的問題。
我最近也遇到了,我是unzip這個套件出了問題,錯誤訊息如下:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ sudo apt-get install stardict --reinstall
讀取套件清單中... 完成
了解套件依存關係中... 完成
更新 0 個套件,新安裝 0 個套件,重新安裝 1 個套件,刪除 0 個套件,另不更新 0 個套件。
需要下載 98.4kB 中 0B 的檔案。
解壓縮後將消耗 0B 的空間。
繼續執行嗎? 是按 [Y] 鍵,否按 [n] 鍵 y
(正在讀取資料庫 ... dpkg:處理 /var/cache/apt/archives/stardict_2.4.3-5_i386.deb (--unpack)時出錯:
套件“unzip”的檔案列表檔案含有空的檔案名
在處理時有錯誤發生:
/var/cache/apt/archives/stardict_2.4.3-5_i386.deb
由於出現了太多錯誤,處理過程被終止了。
E: Sub-process /usr/bin/dpkg returned an error code (1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
後來我查了google,找到了解法。
之所以會有這個錯誤的原因是因為好像是
apt套件管理系統有一些紀錄資訊錯誤所致。
我從google查到的解法很麻煩,
大意上是說要手動重建那些資訊檔。
像我上面的情形是紀錄unzip的檔案損毀、錯誤,
紀錄它的資訊檔通常被存在:
/var/lib/dpkg/info/
我發現只要把該出錯套件的資訊檔直接『砍掉』,
再『重裝該套件』,apt就活過來了。
不必自己重建該資訊檔。
例如我上面的例子是這樣做的:
ls *unzip*
rm unzip.list
apt-get install --reinstall unzip
試試看吧。