GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie Kali mit dem bevorstehenden Python 2 End-of-Life umgeht

Vor fünf Jahren gaben die Python-Entwickler bekannt, dass sie die Unterstützung von Python 2 im Jahr 2020 einstellen werden. Lange Zeit hat sich niemand darum gekümmert und die Einführung von Python 3 war schleppend. Aber die Dinge haben sich in letzter Zeit stark verändert, da die Deadline gleich um die Ecke ist (1. Januar).

Debian entfernt die Python 2-Unterstützung

Debian plant, Python 2 für ihre nächste stabile Veröffentlichung vollständig loszuwerden, so dass sie den Python 2-Code nach und nach loswerden. Sie haben veröffentlichungskritische Fehler bei Blattpaketen (d. h. Paketen ohne umgekehrte Abhängigkeiten) eingereicht und darum gebeten, sie auf Python 3 zu portieren Kali basiert auf) .

Konsequenzen für Kali

Anwendungen verschwinden

Da Kali eine fortlaufende Distribution ist, erhält sie kontinuierlich Updates von Debian Testing. Dies schließt ein, wenn Pakete „verschwinden“, weil sie von Debian gelöscht wurden. Sie können jedoch später immer wieder zurückkehren, vorausgesetzt, jemand portiert sie auf Python 3.

Das haben wir bereits bei zenmap erlebt die von den nmap-Entwicklern nicht mehr gepflegt wird. Daher wird es nicht mehr von Debians nmap-Quellpaket erstellt und erscheint daher nicht mehr in Kali.

Kaputte Anwendungen

Wir haben viele Python 2-Anwendungen in Kali, die Module verwenden, die in Debian gepackt sind. Wenn Debian die Python-2-Version eines solchen Moduls fallen lässt, ist die Anwendung in kali-dev kaputt. kali-rolling ist aufgrund der Art und Weise, wie es verwaltet wird, nicht betroffen, aber die wachsende Divergenz zwischen kali-dev und kali-rolling erschwert unsere Arbeit:Wir erhalten keine Updates für solche Pakete und es gibt andere (neue/) Anwendungen, die das tun erfordert wahrscheinlich neue Versionen dieser Pakete!

Kali muss auch Python 2-Code entfernen

Aufgrund dieser Änderung im Ökosystem hat Kali keine andere Wahl, als Debians Beispiel zu folgen und auch den Python-2-Code zu entfernen. Dieser riesige Aufwand wird mit vielen GitLab-Problemen gegen alle Pakete verfolgt, die in irgendeiner Weise von Python 2 abhängen. Wir haben bereits Upstream-Fehlerberichte für alle Pakete eingereicht, in denen es noch keine Python-3-Unterstützung gibt.

Wie wir jeden Fall handhaben, hängt von vielen Faktoren ab:

  • Wenn Upstream an der Unterstützung von Python 3 arbeitet, warten wir einfach, bis es fertig ist.
  • Wenn Upstream inaktiv ist oder nicht daran interessiert ist, seinen Code auf Python 3 zu portieren, dann haben wir nur wenige Möglichkeiten:
    • Entweder entfernen wir das Paket;
    • oder wir finden einen Fork/Patch, der Python 3-Unterstützung hinzufügt;
    • oder wir übernehmen die Portierungsarbeit selbst (eher unwahrscheinlich, außer bei trivialen Skripten).

Es hängt auch von der Art der Pakete ab:

  • Für eine Python-Bibliothek ist es ein zweistufiger Prozess:Zuerst fügen wir Unterstützung für Python 3 hinzu; Die Python 2-Unterstützung wird später entfernt, sobald alle umgekehrten Abhängigkeiten aktualisiert wurden, um Python 3 zu verwenden.
  • Für eine Python-Anwendung könnte ein einzelnes Update ausreichen, aber dieses Update hängt möglicherweise davon ab, dass Abhängigkeiten zuerst auf Python 3 portiert werden.

Wir möchten Software nicht entfernen, aber manchmal, wenn sie nicht mehr gewartet wird, haben wir keine andere Wahl. Bei wichtigen Paketen warten wir länger und geben der Community somit mehr Zeit, die erforderliche Python 3-Unterstützung hinzuzufügen. Wir könnten sie sogar so patchen, dass sie eine Warnung anzeigen, die Benutzer zum Beitragen auffordert, oder zumindest wissen, dass die Anwendung in naher Zukunft entfernt werden könnte.

Bei Paketen, die keinen großen Mehrwert mehr bieten oder für die es in Kali praktikable Alternativen gibt, können wir sie jederzeit entfernen.

Wie Sie beitragen können

Wenn eine Ihrer Lieblingsanwendungen unter den betroffenen Kali-Paketen oder unter den betroffenen Paketen von Debians pkg-security-Team auftaucht, sollten Sie die Situation überprüfen und möglicherweise den Upstream-Entwicklern helfen, indem Sie eine Pull-Anfrage senden, die Python 3-Unterstützung hinzufügt. Auch wenn der Upstream nicht sehr aktiv ist, können wir Ihre Änderungen in Kali zusammenführen und das Paket länger aufbewahren, bis der Upstream wieder aktiv wird.

Wenn Sie nicht über die dafür erforderlichen Programmierkenntnisse verfügen, können Sie immer noch versuchen, einen Python 3-Fork/Patch zu finden, der von jemand anderem geschrieben wurde, und uns im entsprechenden GitLab-Problem oder Debian-Fehlerbericht darauf hinweisen. Oder teilen Sie den Entwicklern mit, wie sehr Ihnen ihre Anwendung gefällt und dass Sie sie weiterhin verwenden möchten, sodass sie auf Python 3 portieren sollten.


Linux
  1. So Dockerisieren Sie Python-Anwendungen mit Miniconda

  2. So verwenden Sie den Export mit Python unter Linux

  3. Wie kann ich Tastatur und Maus mit Python steuern?

  4. Wie kann ich das 'Backend' in Matplotlib in Python einstellen?

  5. Wie überprüfe ich das Betriebssystem in Python?

So verwenden Sie den who-Befehl in Linux mit Beispielen

So führen Sie einen Shell-Befehl mit Python aus

So finden Sie Dateien mit dem fd-Befehl in Linux

So installieren Sie Python 2.7 unter CentOS 7.1 oder 6.7 mit Anaconda

So installieren Sie Apache mit Python Mod_wsgi unter Debian 10

Wie sehe ich das Python-Dokument unter Linux?