You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
5.5 KiB
139 lines
5.5 KiB
Title: Python 3.11 stanie się domyślną wersją począwszy od 2023-05-01
|
|
Author: Michał Górny <mgorny@gentoo.org>
|
|
Translator: Michał Górny <mgorny@gentoo.org>
|
|
Posted: 2023-04-02
|
|
Revision: 1
|
|
News-Item-Format: 2.0
|
|
Display-If-Installed: dev-lang/python:3.9
|
|
Display-If-Installed: dev-lang/python:3.10
|
|
|
|
Gentoo planuje zmienić domyślną wersję Pythona z 3.10 na 3.11 w dniu
|
|
1. maja 2023 r. Użytkownicy, którzy nie zmieniali wartości flag
|
|
PYTHON_TARGETS oraz PYTHON_SINGLE_TARGET nie muszą nic robić. Menadżer
|
|
pakietów automatycznie zaktualizuje wsparcie Pythona do nowej wersji
|
|
przy kolejnej aktualizacji systemu po tej zmianie.
|
|
|
|
Informacje zawarte w tej wiadomości przeznaczone są dla użytkowników,
|
|
którzy zmieniali preferowaną wersję Pythona bądź chcą przeprowadzić
|
|
aktualizację w bezpieczniejszy sposób.
|
|
|
|
Uwaga: standardowa metoda aktualizacji podmienia obsługiwaną wersję
|
|
Pythona w poszczególnych pakietach w miarę ich aktualizacji.
|
|
Oznacza to, że aktualizacja systemu możliwa będzie wyłącznie, jeżeli
|
|
wszystkie zainstalowane pakiety obsługują nową wersję. W trakcie
|
|
aktualizacji zależności poszczególnych zainstalowanych programów mogą
|
|
stać się tymczasowo niedostępne, nie powinno to jednak mieć wpływu
|
|
na działanie już uruchomionych aplikacji.
|
|
|
|
W tym samym czasie wsparcie Pythona 3.9 zostanie usunięte z eclass.
|
|
Paczka interpretera pozostanie wspierana tak długo, jak to będzie
|
|
możliwe. PyPy3.9 będzie wspierane do momentu wydania i stabilizacji
|
|
PyPy3.10.
|
|
|
|
|
|
Użytkownicy, którzy wykorzystują plik make.conf do ustawienia wartości
|
|
zmiennych PYTHON_TARGETS lub PYTHON_SINGLE_TARGET powinni usunąć
|
|
te wartości, gdyż będą one kolidowały z przykładami package.use
|
|
przedstawionymi w tej wiadomości. Wykorzystywanie pliku make.conf
|
|
do konfiguracji tych zmiennych jest niewskazane, gdyż ustawienia te
|
|
nadpisują domyślne wartości flag zawarte w poszczególnych pakietach.
|
|
Dalszy ciąg tej wiadomości zakłada wykorzystywanie package.use
|
|
lub równoważnego pliku konfiguracyjnego.
|
|
|
|
|
|
Dostępne są następujące możliwości aktualizacji:
|
|
|
|
1. Automatyczna aktualizacja wersji Pythona. Aby skorzystać z tej
|
|
opcji, należy usunąć zmienne PYTHON_TARGETS
|
|
oraz PYTHON_SINGLE_TARGET. Wówczas menadżer pakietów automatycznie
|
|
przeprowadzi aktualizację ilekroć zmieni się domyślna wersja Pythona
|
|
w Gentoo. Niemniej, może zaistnieć konieczność ręcznej aktualizacji
|
|
w przypadku wystąpienia problemów.
|
|
|
|
2. Odroczenie aktualizacji poprzez wymuszenie poprzedniej wersji
|
|
w pliku package.use.
|
|
|
|
3. Wymuszenie wcześniejszej aktualizacji poprzez podanie nowej wersji
|
|
i dokonanie aktualizacji systemu.
|
|
|
|
4. Zastosowanie bezpiecznego podejścia (tj. zmniejszającego ryzyko
|
|
niesprawnych programów w trakcie aktualizacji) poprzez wykonanie
|
|
aktualizacji w kilku krokach. Proces ten jest szczegółowo opisany
|
|
w dalszej części wiadomości.
|
|
|
|
5. Zastosowanie dowolnej kombinacji zmiennych PYTHON_TARGETS
|
|
oraz PYTHON_SINGLE_TARGET.
|
|
|
|
|
|
Odroczenie aktualizacji
|
|
=======================
|
|
Aby odroczyć aktualizację do późniejszego terminu, należy wymusić
|
|
poprzednią wersję Pythona:
|
|
|
|
*/* PYTHON_TARGETS: -* python3_10
|
|
*/* PYTHON_SINGLE_TARGET: -* python3_10
|
|
|
|
W ten sposób Python 3.10 zostanie wymuszony na stałe i przyszłe
|
|
aktualizacje zostaną zablokowane. Należy jednak pamiętać, że jest
|
|
to rozwiązanie tymczasowe i w przyszłości aktualizacja stanie się
|
|
konieczna.
|
|
|
|
|
|
Wymuszenie aktualizacji
|
|
=======================
|
|
Aby wymusić aktualizację wcześniej, należy wybrać Pythona 3.11:
|
|
|
|
*/* PYTHON_TARGETS: -* python3_11
|
|
*/* PYTHON_SINGLE_TARGET: -* python3_11
|
|
|
|
Zalecane jest jednak usunięcie tych ustawień po podanym wyżej terminie,
|
|
aby nie kolidowały w przyszłości z kolejną zmianą domyślnej wersji
|
|
Pythona.
|
|
|
|
|
|
Bezpieczna procedura aktualizacji
|
|
=================================
|
|
Bezpieczniejszą alternatywą do standardowego procesu jest wprowadzenie
|
|
wsparcia Pythona 3.11 w pierwszym kroku, a następnie usunięcie Pythona
|
|
3.10. Należy jednak pamiętać, że będzie wymagało to dwukrotnego
|
|
przebudowania wszystkich pakietów używających Pythona, tak więc łączny
|
|
czas aktualizacji zostanie wydłużony.
|
|
|
|
Najpierw załączyć należy obydwie wersje Pythona i przeprowadzić
|
|
aktualizację systemu:
|
|
|
|
*/* PYTHON_TARGETS: -* python3_10 python3_11
|
|
*/* PYTHON_SINGLE_TARGET: -* python3_10
|
|
|
|
Następnie przełączyć należy wartość PYTHON_SINGLE_TARGET i przebudować
|
|
pakiety używające tych flag:
|
|
|
|
*/* PYTHON_TARGETS: -* python3_10 python3_11
|
|
*/* PYTHON_SINGLE_TARGET: -* python3_11
|
|
|
|
W ostatnim kroku należy wyłączyć poprzednią wersję i przeprowadzić
|
|
kolejną aktualizację:
|
|
|
|
*/* PYTHON_TARGETS: -* python3_11
|
|
*/* PYTHON_SINGLE_TARGET: -* python3_11
|
|
|
|
Po terminie zmiany domyślnych wartości, konfigurację tę można usunąć.
|
|
Alternatywnie, pozostawienie jej zablokuje przyszłą aktualizację
|
|
do Pythona 3.12 i pozwoli na ręczne przeprowadzenie bezpieczniej
|
|
aktualizacji.
|
|
|
|
|
|
Proces aktualizacji
|
|
===================
|
|
Usunięcie Pythona 3.10 wymaga, by odpowiednie flagi zostały jednocześnie
|
|
wyłączone w całym drzewie zależności. Jeżeli niektóre z zainstalowanych
|
|
pakietów nie zostaną uwzględnione w planowanej aktualizacji, mogą one
|
|
zablokować ten proces. Dlatego też istotne jest przeprowadzenie
|
|
aktualizacji przy pomocy parametrów `--deep --changed-use @world` bądź
|
|
równoważnych, jak również wcześniejsze usunięcie niepotrzebnych
|
|
pakietów. Można tego dokonać używając poleceń:
|
|
|
|
emerge --depclean
|
|
emerge -1vUD @world
|
|
emerge --depclean
|