GNU/Linux >> Znalost Linux >  >> Linux

Jak se Kali vypořádá s nadcházejícím Python 2 End-of-Life

Před pěti lety vývojáři Pythonu oznámili, že v roce 2020 přestanou podporovat Python 2. Dlouho to nikoho nezajímalo a přijetí Pythonu 3 bylo pomalé. Ale věci se v poslední době hodně změnily, protože uzávěrka je hned za rohem (1. ledna).

Debian odstraňuje podporu Pythonu 2

Debian se plánuje úplně zbavit Pythonu 2 pro jejich příští stabilní vydání, takže se postupně zbavují kódu Pythonu 2. Zaregistrovali kritické chyby pro vydání listových balíčků (tj. balíčků bez zpětných závislostí) a žádali je, aby byly portovány na Python 3. Pokud se port Pythonu 3 dostatečně brzy nestane, budou tyto balíčky odstraněny z Debian Testing (což je to, co Kali vychází z) .

Důsledky pro Kali

Aplikace mizí

Jelikož je Kali průběžná distribuce, neustále přijímá aktualizace z Debian Testing. To zahrnuje případy, kdy balíčky „odcházejí“, protože byly odstraněny z Debianu. Vždy se však mohou vrátit později, za předpokladu, že je někdo přenese do Pythonu 3.

Už jsme to zažili v případě zenmap který již vývojáři nmap neudržují. Proto již není sestavován zdrojovým balíčkem nmap Debianu a v důsledku toho se již neobjevuje v Kali.

Nefunkční aplikace

V Kali máme mnoho aplikací Python 2, které používají moduly zabalené v Debianu. Když Debian zahodí verzi Pythonu 2 takového modulu, aplikace je v kali-dev nefunkční. kali-rolling není ovlivněn kvůli způsobu, jakým je spravován, ale rostoucí rozdíl mezi kali-dev a kali-rolling nám ztěžuje práci:pro takové balíčky nedostáváme aktualizace a existují další (nedávné/) aplikace, které bude pravděpodobně vyžadovat nové verze těchto balíčků!

Kali musí také odstranit kód Python 2

Kvůli této změně v ekosystému nemá Kali jinou možnost, než následovat příklad Debianu a odstranit také kód Python 2. Toto obrovské úsilí je sledováno s mnoha problémy GitLab proti všem balíčkům, které nějakým způsobem závisí na Pythonu 2. Již jsme odeslali upstream hlášení o chybách pro všechny balíčky, kde ještě není podpora Pythonu 3.

Jak se s každým případem vypořádáme, závisí na mnoha faktorech:

  • Pokud upstream pracuje na podpoře Pythonu 3, počkáme, až bude připraven.
  • Pokud je upstream neaktivní nebo nemá zájem přenést svůj kód do Pythonu 3, máme několik možností:
    • buď balíček odstraníme;
    • nebo najdeme nějaký fork/patch, který přidává podporu Pythonu 3;
    • nebo provádíme přenos sami (s výjimkou triviálních skriptů je to spíše nepravděpodobné).

Záleží také na druhu balíčků:

  • U knihovny Python je to dvoufázový proces:nejprve přidáme podporu Pythonu 3; Podpora Pythonu 2 bude později odstraněna, jakmile budou všechny reverzní závislosti aktualizovány tak, aby používaly Python 3.
  • Pro aplikaci Python může stačit jedna aktualizace, ale tato aktualizace může záviset na tom, zda budou závislosti nejprve přeneseny do Pythonu 3.

Neradi odstraňujeme software, ale někdy, když už nejsou udržovány, nemáme jinou možnost. U důležitých balíčků čekáme déle, takže komunitě poskytneme více času na přidání požadované podpory Pythonu 3. Můžeme je dokonce opravit tak, aby zobrazovaly varování vyzývající uživatele, aby přispěli, nebo alespoň pochopili, že aplikace může být v blízké budoucnosti odstraněna.

U balíčků, které již nepřidávají velkou hodnotu nebo které mají v Kali životaschopné alternativy, je můžeme kdykoli odstranit.

Jak můžete přispět

Pokud se některá z vašich oblíbených aplikací objeví mezi postiženými balíčky Kali nebo mezi postiženými balíčky od týmu Pkg-security Debianu, měli byste zkontrolovat její situaci a případně pomoci upstream vývojářům odesláním žádosti o stažení s podporou Pythonu 3. I když není upstream příliš aktivní, budeme moci sloučit vaše změny v Kali a ponechat balíček déle, dokud se upstream znovu neaktivuje.

Pokud nemáte potřebné kódovací dovednosti, můžete se přesto pokusit najít fork/patch Pythonu 3 napsaný někým jiným a upozornit nás na to v odpovídajícím problému GitLab nebo hlášení o chybě Debianu. Nebo řekněte vývojářům, jak moc se vám jejich aplikace líbí a že byste ji rádi nadále používali, takže by měli přejít na Python 3.


Linux
  1. Jak auditovat oprávnění pomocí příkazu find

  2. Jak používat export s Pythonem na Linuxu

  3. Jak mohu ovládat klávesnici a myš pomocí Pythonu?

  1. Jak mohu nastavit 'backend' v matplotlib v Pythonu?

  2. Jak zkontroluji operační systém v Pythonu?

  3. Jak zabít python skript pomocí bash skriptu

  1. Jak Dockerize Python aplikací s Miniconda

  2. Jak získat velikost tar.gz v (MB) souboru v pythonu

  3. Jak získat PYTHONPATH v shellu?