指示 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/

相关内容