解決apt 依賴破損的問題
在 安裝 python3 / python2 共存的環境時, 不知道做了什麽, 導致
apt 依賴故障
odoo@sy-odoo-08:~$ sudo apt-get remove apport
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關系樹
正在讀取狀態信息... 完成
下列軟件包是自動安裝的並且現在不需要了:
gir1.2-glib-2.0 iso-codes libgirepository-1.0-1 python3-apport python3-apt python3-gi
python3-problem-report
使用‘sudo apt autoremove‘
下列軟件包將被【卸載】:
apport
升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 1 個軟件包,有 31 個軟件包未被升級。
有 2 個軟件包沒有被完全安裝或卸載。
需要下載 0 B/144 kB 的歸檔。
解壓縮後將會空出 778 kB 的空間。
您希望繼續執行嗎? [Y/n] y
(正在讀取數據庫 ... 系統當前共安裝有 99960 個文件和目錄。)
正在卸載 apport (2.20.1-0ubuntu2.10) ...
Traceback (most recent call last):
File "/usr/bin/pyclean", line 31, in <module>
from debpython import files as dpf
ImportError: No module named debpython
dpkg: 處理軟件包 apport (--remove)時出錯:
子進程 已安裝 pre-removal 腳本 返回錯誤狀態 1
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr,
ImportError: No module named debpython.version
dpkg:清理時出錯:
子進程 已安裝 post-installation 腳本 返回錯誤狀態 1
在處理時有錯誤發生:
apport
E: Sub-process /usr/bin/dpkg returned an error code (1)
報告
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr,
ImportError: No module named debpython.version
如下圖
嘗試用 apt-get install -f 也無法解決..
偶爾運行 apt-get install --reinstall python-mininal , 卻發現 這個 破損被修復了.
查找 python-mininal 包的 詳情, 發現 /usr/bin/pycompile 正好是 它所提供的
所以 重裝 python-minimal 剛剛好 修復了這個問題.
備註:
python3-minimal 內容跟 python-minimal 不一樣
總結:
python程序報錯, 第一步 應該檢查 程序本身, 然後, 才是接著 檢查 依賴包
本例 應該檢查 /usr/bin/pycompile , pycompile 可以在 安裝其他版本的python時 被汙染, 所以, 重裝 包含pycompile 的包 才是正確的做法…..
那麽 怎麽反查 文件包含在哪個 包裏面呢?
可以用 dpkg -S
dpkg -S /usr/bin/pycompile
還可以用 apt-file
例如, 查找 包含 pycompile 的包
解決apt 依賴破損的問題