Installation Security Fixes

Probleme bei der Installation?
Antworten
Matti
User
Beiträge: 4
Registriert: Dienstag 4. Oktober 2022, 09:51

Grüße,

ich habe ein leichtes Verständnis Problem.

Die Python Versionen 3.9 und 3.7 sind aus den üblichen Update Intervallen rausgelaufen und bekommen nur noch Security fixes.
Soweit so gut, so verständlich.

Es gibt jetzt für diese Versionen auch keine Installer mehr sondern nur noch die Zip Dateien dafür.

Was ist hier der beste Weg diese zu integrieren?
Soll hier nur der Inhalt extrahiert werden und in den bestehenden Ordner kopiert werden, oder was wäre hier Best Practice?

LG
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Du meinst wahrscheinlich 3.6 nicht 3.9? Warum möchtest Du diese alten Versionen noch installieren?
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Matti: Du meinst sicher 3.6 statt 3.9. Wobei 3.6 soweit ich weiss komplett EOL ist, also auch keine Sicherheitsaktualisierungen mehr.

Die Archivdateien enthalten den Quelltext, da ist deutlich mehr notwendig als die zu entpacken. Best Practice, wenn man das nicht will oder kann, wäre auf eine Version zu aktualisieren für die es einen Installer gibt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Matti
User
Beiträge: 4
Registriert: Dienstag 4. Oktober 2022, 09:51

Nein mir geht es tatsächlich um 3.9 und 3.7

Ich möchte nicht die alten Installieren sondern alte Versionen aktualisieren um die Sicherheit gewährleisten zu können.

@__blackjack__
Genau hier habe ich mein Verständnis Problem, was genau soll ich denn unter Windows mit den Zip Dateien tun?
Was ist denn alles Notwendig?
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Matti: Ganz ehrlich: Wenn Du diese Frage stellst, dann solltest Du mit den Archivdateien gar nichts tun. 😜

Du brauchst einen passenden C-Compiler, und wahrscheinlich noch ein paar Bibliotheken wie OpenSSL und Tk und müsstest dann aus dem C-Quelltext den Python-Interpreter kompilieren.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Matti
User
Beiträge: 4
Registriert: Dienstag 4. Oktober 2022, 09:51

@__blackJack__

Dann würdest du mir ja das Recht auf ein Sicheres System absprechen und das willst du doch nicht oder ;P

Ich bin halt überrascht, dass ich zur Einbindung nicht wirklich etwas finde bei Python.
Daher wollte ich hier mal Nachfragen ob es dafür eine Anleitung gibt, die ich bisher nicht gefunden habe.


Hat das bisher keiner genutzt oder angewendet?
Mir ist schon bewusst, dass man neue Versionen nutzen sollte, aber gerade bei Fragen der Kompatibilität kann ich mir nur schwer vorstellen, dass keiner mal bei den alten Versionen bleibt...

Und wenn ich mir das Zip-File anschaue, dann ist es halt auch von der Struktur her so aufgebaut wie der Python Ordner nach der Installation, daher meine Frage ob das entpacken und kopieren der Daten reicht.
Die Dateien die ich so sehe entsprechen jetzt halt nicht unbedingt dem was ich als Quelldatei erwarten würde...
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Matti: Also erst einmal hast Du kein Recht auf ein sicheres System. Das muss ich Dir nicht absprechen, denn ich wüsste nicht wann Dir das irgendwer mal zugesprochen hat. Du verwendest Windows — damit ist doch eh schon alles verloren. 😛

Klar bleiben Leute bei alten Versionen. Und haben dann halt keine Sicherheitsupdates. Oder sie kompilieren selbst, oder sie haben jemanden der sich darum kümmert. Zum Beispiel Linux-Distributionen oder Python-Distributionen wie Anaconda.

Was die Kompatibilität angeht ist Python in der Regel recht rückwärtskompatibel, und der Lebenszyklus der Versionen ist ziemlich gut geplant und dokumentiert. Das ist also nicht überraschend das und wann es keine Installer für eine Version mehr gibt. Das ist eigentlich planbar. Und man kann auch mehrere Versionen parallel installiert haben, der Umstieg solange es noch Installer gibt, muss also nicht auf einen Schlag passieren.

Da nicht ganz klar ist was Du da von wo heruntergeladen hast, kann man jetzt nicht wirklich sagen was in Deinem Archiv drin ist. Das Du „ZIP-File“ schreibst, macht mich schon mal stutzig. Falls Du da ein „embeddable package“ heruntergeladen hast: das willst Du eher nicht verwenden und das wäre auch nicht die aktuelle Version von beispielsweise Python 3.9.14. Den Quelltext dafür gibt es nicht als ZIP sondern als TAR in zwei verschiedenen Kompressionsvarianten.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
noisefloor
User
Beiträge: 3854
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du die ZIP-Dateien, die den "source release" enthalten meinst: das ist der Python-Quellcode, den du auf der Zielplattform deiner Wahl komplieren kannst. Unter Linux ist das relativ einfach, unter Win habe ich das noch nie probiert.

In der gepackten Datei ist die "README.rst" Datei, die weitere Infos zum selber kompilieren enthält.

Gruß, noisefloor
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Offensichtlich haben die Maintainer keine Lust/Zeit oder Geld, um alte Python-Bugfigx-Releases für Windows zu kompilieren.

Was hindert dich daran, Python 3.10 zu verwenden? Irgendwelche ungelösten Abhängigkeiten? Zu viel alten Code mitgeschleppt?
https://www.python.org/downloads/release/python-3107/
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Du könntest mal schauen, wie weit conda noch ältere Versionen für windows unterstützt.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

ActiveState Python gibt es scheinbar zumindest für 3.8 und 3.9. Meine eigenen Erfahrungen damit sind ca. 15-20 Jahre her. Keine Ahnung, ob das heute noch viel verwendet wird. Ich glaube, Anconda ist beliebter. In der Liste in der offiziellen Python Doku unter 4.5 wird es aber geführt: https://docs.python.org/3/using/windows ... ve-bundles
Matti
User
Beiträge: 4
Registriert: Dienstag 4. Oktober 2022, 09:51

@__blackjack__
Ja ich meinte tatsächlich die offiziellen Geschichten von 3.9.14 für Windows.

@noisefloor
Danke diese Readme Datei habe ich tatsächlich immer übersehen...
Da steht es ganz brauchbar drin.

@DeaD_EyE
Ja so ist es, ist auch ihr gutes Recht, da die Versionen schon relativ alt sind, zumindest 3.7 .
Ich hatte halt nur das Problem, dass ich die Doku nicht gefunden hatte und damit etwas im dunkeln stocherte.

Jeder Versionssprung erfordert immer auch das erneute einbinden aller packages und es sind nicht immer alle packages mit den neuen Versionen kompatibel oder andersherum alte packages mit den neuen Versionen. Daher das Festhalten an der alten Version.

@kbr
Ich glaube Anaconda ist mit seinen Environments recht flexibel und hat halt nur immer eine "Standardversion" von Python an der es sich orientiert, was man über die environments aber ändern kann.
Allerdings installiert Anaconda immer ewig viel mit was man eigentlich gar nicht haben möchte.
Für die Zukunft werde ich es mir aber wohl mal anschauen müssen.
Hat Anaconda eigentlich auch einen Compiler dabei? Weiß ich gerade nicht aber so mächtig wie das ist sehr wahrscheinlich...

@nezzcarth
ActiveState Python kenne ich noch nicht. Werde ich mir bei Gelegenheit mal anschauen.

@all
Vielen Dank für eure Hilfe
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Ich muss zugeben, dass ich auch das Problem, alte Versionen unter Windows benutzen zu wollen/müssen, weil eventuell Pakete unter neuen Version nicht mehr funktionieren würden, nur sehr begrenzt sehe bzw. für konstruiert halte.

Den grundsätzlichen Bedarf gibt es zwar an sich schon. Aber das ist dann halt Software, die man eben zum Beispiel auf einem entsprechenden Enterprise Linux mit LTS Support laufen lässt, wo man den Hersteller explizit dafür bezahlt, ein abgeschriebenes Python noch Not-zu-versorgen. Im privaten bzw. geschäftlichen Desktop-Bereich unter Windows sehe ich so etwas irgendwie nicht so ganz. Nimm einfach die neuste Python Version und gut ist. Dass eine Bibliothek danach nicht mehr funktionieren ist – spätestens seit das Nebeneinander von Python 2 und 3 vorbei ist – nach meiner Erfahrung extrem selten.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Jeder Versionssprung erfordert immer auch das erneute einbinden aller packages und es sind nicht immer alle packages mit den neuen Versionen kompatibel oder andersherum alte packages mit den neuen Versionen. Daher das Festhalten an der alten Version.
Welche Packages gehen denn nicht? Mittlerweile müssten sogar PyTorch und TensorFlow mit Python 3.10 funktionieren. Meistens dauert es nach einem Release ein Jahr, damit die größten Pakete mit viel Code für die neue Python-Version angepasst werden. Da Python 3.11 kurz davor ist veröffentlicht zu werden, solltest du vielleicht noch ein wenig warten. Bei Python 3.11 gibt es 10 - 60 % Geschwindigkeitszuwachs, sofern es damit keine Probleme gibt und du kein PyTorch oder TensorFlow verwendest.

Mit anderen Paketen habe ich selten bis nie Probleme gehabt.
Ausnahmen gab es natürlich immer. Schwierig war es z.B. kurz nach der Einführung von async/await als reservierter Name (Python 3.7). Da viele Funktionen async als Namen verwendet hatten, konnte man diese ohne Umbenennung nicht mehr mit Python 3.7 nutzen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Nachtrag. Ich hatte noch zufällig eine VM mit Win10 und Visual Studio 2022 laufen. Das hatte ich schon wieder vergessen.
Jedenfalls benötigt man für Python 3.9.14 auch MSVC v140 VS 2015 C++ BuildTools.
Wenn man das nicht installiert hat, meldet sich der Compiler mit einer verständlichen Fehlermeldung.

Git installieren, dann Python herunterladen oder halt das Archiv entpacken.
Danach in das Verzeichnis cpython\Tools\msi wechseln und buildrelease.bat ausführen.

Wenn alles gut geht, hat man am Ende im Verzeichnis `cpython\PCbuild\amd64\en-us` die Dateien:

Code: Alles auswählen

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        05.10.2022     21:00        1345588 python-3.9.14-amd64-webinstall.exe
-a----        05.10.2022     21:00         299100 python-3.9.14-amd64-webinstall.wixpdb
-a----        05.10.2022     21:00       28995010 python-3.9.14-amd64.exe
-a----        05.10.2022     21:00         300440 python-3.9.14-amd64.wixpdb
-a----        05.10.2022     21:00        8198524 python-3.9.14-embed-amd64.zip
-a----        05.10.2022     21:00       15397770 python.3.9.14.nupkg
Das Resultat werde ich aber aus mehreren Gründen hier nicht veröffentlichen.
Der wichtigste Grund ist Sicherheit. Traue niemanden in irgendeinem Forum, der irgendein "Release" veröffentlicht.
Wenn es z.B. für ein Unternehmen sein sollte, dann bitte auf eigener Infrastruktur auf einem sauberen PC.
Mit sauber meine ich möglichst nicht mit Viren befallen.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten