weisen Sie den Apt-Paketinstallateur an, auf eine andere Python-Version zuzugreifen

weisen Sie den Apt-Paketinstallateur an, auf eine andere Python-Version zuzugreifen

Ich verwende eine recht alte Linux-Installation, das System Python enthält Python 3.7 nicht. Ich habe jedoch Python 3.7 installiert, wie aus der folgenden Terminalausgabe hervorgeht, möchte das Paketinstallationsprogramm jedoch anweisen, darauf zuzugreifen, wenn es versucht, eine Installation auszuführen:

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 ~ $ 

Ist das möglich?

Antwort1

Da Sie nicht angegeben haben, welche apt-basierte Linux-Distribution Sie verwenden, gehe ich davon aus, dass es Debian ist. Dies sollte für abgeleitete Distributionen gelten, sofern das equivsunten aufgeführte Paket vorhanden ist.

Sie sollten Ihr System unbedingt auf eine aktuelle/unterstützte Version aktualisieren, da sonst zunehmend Abhängigkeitsprobleme auftreten.

Um Ihr Abhängigkeitsproblem zu lösen, können Sie versuchen, das Paket zu verwendenequivs:

[...]

Eine weitere Möglichkeit besteht darin, Abhängigkeitsprüfungen zu umgehen: Indem Sie dpkg glauben lassen, dass ein bestimmter Paketname und eine bestimmte Version installiert sind, obwohl dies nicht der Fall ist, können Sie Fehler in den Abhängigkeiten anderer Pakete umgehen. (Bitte melden Sie solche Fehler trotzdem.)

Sie sollten eine Steuerdatei erstellen mit equivs-control:

equivs-control python3

Bearbeiten Sie die erstellte Datei python3. In Ihrem Fall können Sie die relevanten Zeilen hinzufügen oder ändern:

Package: python3
Version: 3.7.7
Architecture: all

(und jedes andere Feld, das Sie für nützlich erachten, wie Description)

Führen Sie dann aus, equivs-build python3um ein (in diesem Fall) leeres Paket namens zu erstellen, python3_3.7.7_all.debdas Sie dann mit installieren können dpkg -i python3_3.7.7_all.deb.

Dies erfüllt zwar Abhängigkeiten, gibt aber keine Garantie dafür, dass Sie ein funktionierendes Ergebnis erhalten: Es hängt davon ab, was Sie tatsächlich mit Ihrer eigenen Python-Installation bereitstellen. Das Mindeste, was Sie tun können, ist sicherzustellen, dass, falls noch nicht geschehen, auch ein symbolischer Link namens vorhanden ist python3. Dieser muss möglicherweise in vorhanden sein und /usr/bin/nicht nur in /usr/local/bin/.

verwandte Informationen