1. 程式人生 > >解決apt 依賴破損的問題

解決apt 依賴破損的問題

trac mpi osi proc ges tex 完全 ati imp

安裝 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 依賴破損的問題