Python für das alte Debian 8 und 9
« | 03 Oct 2020 | »Man braucht Python
3.7 unter Debian 8 oder 9.
Die beiden unterstützen das aber nicht.
Man kompiliert Python aus den Quellen, das scheitert wieder an
OpenSSL.
Willkommen in meiner verrückten Welt der Linux Installationen.
Der Support von älteren Betriebssystem wird von Softwareherstellern sträflichst vernachlässigt. Denn wenn auf Industriehardware ein bestimmtes System vorgeschrieben ist, kann man nicht einfach zum USB-Stick greifen und ein neues OS aufziehen.
Man muss also die Software dazu bringen, auf dem alten System zu laufen.
In meinem Fall war die Anforderung:
- Debian 8
- Python 3.7
- SSL Python Bibliothek und
pip
zum Download weiterer Pakete.
Nach einer Menge von Fehlschlägen möchte ich das Ergebnis nicht verheimlichen.
Die bei Debian vorhandene OpenSSL 1.0.2 Bibliothek ist ebenfalls zu alt und muss erneuert werden bevor Python kompiliert werden kann. Wir müssen also:
- Eine Build-Umgebung bereitstellen
- OpenSSL Quellen herunterladen und durchbauen
- OpenSSL ins System integrieren
- Python Quellen herunterladen und durchbauen
- Python ins System integrieren
Meine wichtigste Erkenntnis war:
Ja nicht
ldconfig -v
vergessen !!!!
Installationsprozedur
- Build-Umgebung bereitstellen:
Ich habe die Installation generell alsroot
laufen lassen. Vermutlich wird es mitsudo
aber auch
funktionieren. - OpenSSL Quellen herunterladen und durchbauen:
Ich habe mich OpenSSL 1.1.1f gewählt und lasse die Datei direkt aus dem Netz laden. Die Quellen werden in/usr/src
gebaut. - OpenSSL ins System integrieren:
Die vorherige Installationsprozedur reicht nicht aus, dass andere Programme OpenSSL finden, deshalb muss nun1ldconfig -v
ausgeführt werden. Es garantiert, dass OpenSSL’s *.so Dateien geladen werden können.
- Python Quellen herunterladen und durchbauen:
Mein Wahl fiel auf Python 3.7.9, welches beim Kompilieren den Pfad zu OpenSSL benötigt. - Python ins System integrieren:
Das Toolupdate-alternatives
soll nun alle Links so einrichten, dass Python im System gefunden werden kann:Wer möchte, dass Python 3 auch gleich Python 2 ersetzt, kann wie folgt fortfahren:
Aber Vorsicht: Es kann dann auch zu Störungen kommen, wenn Python 2 Scripts ausgeführt werden.
Die Prozedur hat bei mir sowohl unter Debian 8 als auch unter Debian 9 funktioniert.
Debian 10 hat zum Glück beide Programmversionen schon in seinem Repository.
Hier reicht ein einfaches
apt install python3 python3-pip
(Ja, so einfach kann es eben auch gehen)
Fazit
Wie schon erwähnt hat mich das fehlende ldconfig -v
viel Zeit gekostet.
Denn Python kompiliert ansonsten ganz brav durch und meint am Ende im
Kommentar, dass SSL nicht zur Verfügung steht, weil die nötigen Libs nicht
gefunden wurden.
Das Problem bemerkt man erst, wenn man die ersten Scripts ausführt, die dann an HTTPS und Co scheitern.