指示 apt 軟體包安裝程式存取不同的 python 版本

指示 apt 軟體包安裝程式存取不同的 python 版本

我使用的是相當舊的 Linux 安裝,系統 python 不包含 Python 3.7。然而,我已經安裝了 Python 3.7,如以下終端輸出所示,但我想指示套件安裝程式在嘗試運行安裝時存取它:

cardamom@jupiter ~ $ python --version
Python 2.7.12
cardamom@jupiter ~ $ python3.7 --version
Python 3.7.7
cardamom@jupiter ~ $ sudo apt install -y dangerzone
[sudo] Passwort für cardamom: 
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 dangerzone : Hängt ab von: python3:any (>= 3.7~)
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
cardamom@jupiter ~ $ 

可以這樣做嗎?

答案1

由於您沒有說明您正在使用哪個基於 apt 的 Linux 發行版,所以我假設它是 Debian。只要equivs下面的套件存在,這應該適用於派生發行版。

您確實應該將系統升級到最新/受支援的版本,因為您將開始遇到越來越多的依賴性問題。

無論如何,為了滿足您的依賴問題,您可以嘗試使用該套件equivs

[...]

另一個用途是規避依賴項檢查:透過讓 dpkg 認為特定的軟體包名稱和版本已安裝(而實際上並未安裝),您可以解決其他軟體包依賴項中的錯誤。 (不過,請仍提交此類錯誤。)

您應該使用以下內容建立一個控製文件equivs-control

equivs-control python3

編輯已建立的文件python3,根據您的情況,您可以新增或變更相關行:

Package: python3
Version: 3.7.7
Architecture: all

(以及您認為有用的任何其他字段,例如Description

然後運行equivs-build python3創建一個空的(在本例中)包,python3_3.7.7_all.deb然後您可以使用dpkg -i python3_3.7.7_all.deb.

這將滿足依賴關係,但不能保證您將獲得工作結果:這取決於您自己的 python 安裝實際提供的內容。您至少可以做的是確保(如果尚不存在)還有一個名為 的符號連結python3。它可能必須存在於/usr/bin/而不是僅存在於/usr/local/bin/

相關內容