Modifiche in Fedora 41 per sviluppatori
Python 3.13
Fedora 41 fornisce Python 3.13, l’ultima major release del linguaggio Python. Per un elenco delle modifiche in questa versione, vedere il collegamento:https://docs.python.org/dev/whatsnew/3.13.html#what-s-new-in-python-3-13[upstream documentazione], in particolare il collegamento:https://docs.python.org/dev/whatsnew/3.13.html#porting-to-python-3-13[Porting to Python 3.13] sezione.
Inoltre, PythonC è ora costruito con il flag del compilatore -03
in Fedora, che si allinea con il modo in cui Python è costruito a monte e fornisce un notevole miglioramento delle prestazioni (ad esempio, media geometrica pyperformance
1,04 volte più veloce). Ciò riguarda solo l’interprete e la libreria Python standard, non eventuali moduli di estensione di terze parti creati come RPM o su sistemi di sviluppo.
Note sulla migrazione dei pacchetti pip installati dall’utente
Quando si aggiorna da Fedora 40 a Fedora 41, la versione principale dell’interprete Python cambia da 3.12 a 3.13. Se hai installato pacchetti Python utilizzando pip
, devi completare la seguente procedura per migrarli alla nuova versione:
-
Installa la versione Python precedentemente principale:
sudo dnf installa python3.12
-
Ottieni
pip
per la versione Python precedentemente principale:python3.12 -m Guaranteepip --user
-
Osserva i pacchetti installati:
python3.12 -m pip list
-
Salva l’elenco con versioni specifiche:
python3.12 -m pip freeze > installato.txt
-
Installa gli stessi pacchetti per la versione ora predefinita:
python3 -m pip install --user -r installato.txt
-
Disinstallare i pacchetti installati dall’utente per 3.12; questo garantisce la corretta rimozione dei file in
~/.local/bin
:python3.12 -m pip disinstalla $(python3.12 -m pip list --user | cut -d" " -f1)
-
Facoltativamente, ripulisci la struttura della directory ora vuota:
rm -rf ~/.local/lib/python3.12/
-
Facoltativamente, rimuovi la versione Python non necessaria:
sudo dnf rimuovi python3.12
Inoltre, se hai qualche pacchetto "pip" installato utilizzando "sudo", esegui i seguenti comandi prima di eseguire il passaggio finale sopra che rimuove "python3.12", oppure installalo di nuovo temporaneamente:
-
Ottieni
pip
per la versione Python precedentemente principale perroot
:sudo python3.12 -m Guaranteepip
-
Osserva i pacchetti installati dal sistema:
sudo python3.12 -m pip list
-
Disinstallare i pacchetti installati per 3.12; questo garantisce la corretta rimozione dei file in
/usr/local/bin
:sudo python3.12 -m pip uninstall $(python3.12 -m pip list | cut -d" " -f1)
-
Facoltativamente, ripulisci ora la struttura di directory vuota:
sudo rm -rf /usr/local/lib*/python3.12/
Se hai seguito la prima procedura, i pacchetti sono già installati per il tuo account utente, che è l’opzione preferita. Evita di utilizzare |
Pytest 8
Pytest è un framework di test per progetti basati su Python. Con Pytest puoi scrivere casi di test semplici e scalabili per il tuo codice. È ora disponibile Pytest 8, che rimuove molte funzioni deprecate e introduce alcune modifiche importanti. Gli aggiornamenti degni di nota includono:
-
Differenze migliorate che
pytest
stampa quando l’asserzione fallisce. -
Il metodo interno
FixtureManager.getfixtureclosure
è cambiato. I plugin che utilizzano questo metodo o quella sottoclasse del componenteFixtureManager
e sovrascrivonoFixtureManager.getfixtureclosure
dovranno adattarsi. -
Gli avvolgitori a gancio di "nuovo stile" vengono ora utilizzati internamente.
-
Pulita la gestione del parametro predefinito durante la definizione delle opzioni di configurazione.
-
link: Alcuni pacchetti probabilmente non verranno creati.
Per maggiori dettagli, consultare il collegamento: note sulla versione upstream.
PyTorch 2.4
Fedora 41 fornisce PyTorch versione 2.4, l’ultimo upstream di questa popolare libreria Python per il deep learning utilizzando CPU e GPU.
Per ulteriori informazioni, vedere il collegamento:https://pytorch.org/blog/pytorch2-4/[annuncio di rilascio upstream] e il collegamento:https://github.com/pytorch/pytorch/releases/ tag/v2.4.0[note sulla versione].
ROCm 6.2
ROCm 6.2 è l’ultima iterazione delle librerie di calcolo di AMD che funzionano con il kernel Linux per consentire agli utenti di eseguire carichi di lavoro di calcolo sulle proprie GPU. È abilitato il maggior numero possibile di GPU, quindi l’accelerazione aperta è disponibile e facile per un pubblico quanto più ampio possibile. È anche integrato con PyTorch in Fedora 41. Vedi il note di rilascio upstream per i dettagli .
Python 2 obsoleto
Il pacchetto python2.7
è stato ritirato senza sostituzione da Fedora Linux 41. Non ci sarà Python 2 in Fedora 41 o versioni successive, oltre a PyPy. I pacchetti che richiedono python2.7 in fase di runtime o buildtime dovranno essere aggiornati per utilizzare Python 3 o anche ritirati.
Golang 1.23
L’ultima versione stabile di questo linguaggio di programmazione è ora disponibile in Fedora 41. Le modifiche degne di nota includono:
-
La clausola "range" nel ciclo "for-range" accetta le funzioni dell’iteratore come espressioni di intervallo. I tipi supportati di funzioni iteratore sono:
-
func(func() bool)
-
func(func(K) bool)
-
func(func(K, V) bool)
Le chiamate della funzione argomento iteratore producono i valori di iterazione per il ciclo "for-range".
-
-
La toolchain Go può raccogliere statistiche sull’utilizzo e sui guasti. Questi sono denominati "Go telemetry" e rappresentano un sistema di attivazione controllato dal comando "go telemetry".
-
La variabile d’ambiente
GOROOT_FINAL
non funziona più. Installa un collegamento simbolico invece di riposizionare o copiare il file binariogo
se la tua distribuzione installa il comandogo
in una posizione diversa da$GOROOT/bin/go
. -
Il messaggio di traceback stampato dal runtime dopo un errore fatale ora rientra nella seconda riga e in quelle successive del messaggio di una singola tabulazione.
-
Modifiche significative all’implementazione dei tipi "time.Timer" e "time.Ticker".
Per maggiori dettagli, consultare il collegamento: note sulla versione upstream.
Perl 5.40
L’ultima versione stabile di questo linguaggio di programmazione è ora disponibile in Fedora 41. Le modifiche degne di nota includono:
-
Nuova parola chiave "CLASS"
-
Attributo
:reader
per le variabili di campo. Ciò richiede la creazione automatica di un metodo di accesso che restituisca il valore della variabile di campo dall’istanza specificata. -
Quando si elaborano le opzioni della riga di comando, Perl consente uno spazio tra l’opzione
-M
e il nome del modulo dopo di essa. -
Le funzioni
inf
enan
(sperimentali) sono state aggiunte allo spazio dei nomibuiltin
. Agiscono come costanti che producono rispettivamente il valore infinito in virgola mobile e Not-a-Numer. -
La chiamata al metodo "import" di un pacchetto sconosciuto produce un avviso.
-
La sintassi dell’operatore "return" ora rifiuta gli oggetti indiretti.
-
L’uso di
goto
per passare da un ambito esterno a uno interno è deprecato e verrà rimosso completamente in Perl 5.42.
Per maggiori dettagli, consultare il collegamento: note di rilascio upstream.
NodeJS 22.0
Fedora 41 ora viene fornito con Node.js 22.x come motore lato server JavaScript Node.js predefinito. Se le tue applicazioni non sono ancora pronte per questa versione più recente, dovranno essere modificate per dipendere dal pacchetto di compatibilità nodejs20
e fare affidamento su /usr/bin/node20
invece di /usr/bin/node
per operazione.
Haskell GHC 9.6 e Stackage LTS 22
Per Fedora 41, il pacchetto principale del compilatore GHC Haskell è stato dalla versione 9.4.5 all’ultima versione stabile 9.6.6 (ribasando il pacchetto ghc dal pacchetto ghc9.6). Insieme a questo, i pacchetti Haskell in Stackage (la distribuzione stabile del pacchetto sorgente Haskell) sono stati aggiornati dalle versioni in LTS 21 all’ultima versione LTS 22. I pacchetti Haskell non presenti in Stackage sono stati aggiornati all’ultima versione appropriata nel repository dei pacchetti Hackage upstream.
Per informazioni complete su questa versione, consultare il collegamento:https://downloads.haskell.org/~ghc/9.6.6/docs/users_guide/9.6.1-notes.html[note sulla versione upstream] e il collegamento:+ https://gitlab.haskell.org/ghc/ghc/-/wikis/migration/9.6+[guida alla migrazione].
Aggiornamento della catena degli strumenti GNU
La toolchain GNU in Fedora 41 è stata aggiornata a:
-
Compilatore GNU C (
gcc
) 14.1+ -
Utilità binarie GNU ("binutils") 2.42+
-
Libreria GNU C (
glibc
) 2.40 -
Debugger GNU (
gdb
) 14+
Vedi anche le note di rilascio upstream per il collegamento:https://gcc.gnu.org/gcc-14/changes.html[GCC], collegamento:https://gcc.gnu.org/archive/html/ info-gnu/2024-01/msg00016.html[Binutils], collegamento:https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;hb=HEAD[GLibC NEWS] e collegamento:https://www.sourceware. org/gdb/news/[NOTIZIE GDB].
LLVM 19
I sottoprogetti LLVM in Fedora sono stati aggiornati alla versione 19.
I pacchetti di compatibilità clang18
, llvm18
, lld18
, compiler-rt18
e libomp18
sono stati aggiunti per garantire che i pacchetti che attualmente dipendono dalle librerie clang e llvm versione 18 continuino a funzionare. I precedenti pacchetti di compatibilità presenti in Fedora 40, come llvm17
, clang17
, ecc. sono stati ritirati.
Vedere il collegamento:https://releases.llvm.org/19.1.0/docs/ReleaseNotes.html[LLVM 19 Note sulla versione] per ulteriori informazioni su questa versione.
Want to help? Learn how to contribute to Fedora Docs ›