Cambios en Fedora 41 para Desarrolladores
Python 3.13
Fedora 41 proporciona Python 3.13, la última liberación mayor del lenguaje Python. Para un listado de cambios en esta liberación, consulte la documentación última, especialmente la sección Portar a Python 3.13.
Además, PythonC ahora se compila con el indicador de compilación -03
en Fedora, lo cual se alinea con la compilación de Python en su origen y proporciona una mejora notable del rendimiento (por ejemplo, una media geométrica pyperformance
1,04 veces más rápida). Esto solo afecta al intérprete y a la biblioteca estándar de Python, no a los módulos de extensión de terceros compilados como RPM o en sistemas de desarrollo.
Notas en migrar paquetes pip de usuario-instalado
Al modernizar de Fedora 40 a Fedora 41, la versión principal del intérprete de Python cambia de la 3.12 a la 3.13. Si tiene instalados paquetes de Python con pip
, debe completar el siguiente procedimiento para migrarlos a la versión nueva:
-
Instale la versión principal de Python anterior:
sudo dnf install python3.12
-
Obtenga
pip
para la versión Python principal anterior:python3.12 -m ensurepip --user
-
Observe los paquetes instalados:
python3.12 -m pip list
-
Guarde el listado con versiones específicas:
python3.12 -m pip freeze > installed.txt
-
Ahora instale el mismo paquete para la versión por defecto:
python3 -m pip install --user -r installed.txt
-
Desinstale los paquetes instalados por el usuario para 3.12; esto garantiza la eliminación adecuada de los archivos en
~/.local/bin
:python3.12 -m pip uninstall $(python3.12 -m pip list --user --format freeze | cut -d= -f1)
-
Opcionalmente, vacíe la estructura del directorio vacío ahora:
rm -rf ~/.local/lib/python3.12/
-
Opcionalmente, quite la versión de Python no necesaria:
sudo dnf remove python3.12
Adicionalmente, si tiene cualquier paquete pip
instalado utilizando sudo
, ejecute las instrucciones siguientes antes del paso final sobre el cual retira `python3.12`, o instálelo de nuevo temporalmente:
-
Obtenga
pip
desde la versión Python principal previamente pararoot
:sudo python3.12 -m ensurepip
-
Observe los paquetes instalados del sistema:
sudo python3.12 -m pip list
-
Desinstala paquetes instalados para 3.12; esto asegura desinstalación asegurada de archivos en
/usr/local/bin
:sudo python3.12 -m pip uninstall $(python3.12 -m pip list | cut -d" " -f1)
-
Opcionalmente, vacía ahora la estructura del directorio vacío:
sudo rm -rf /usr/local/lib*/python3.12/
Si ha seguido el primer procedimiento, los paquetes ya están instalados para su cuenta de usuario, lo cual es la opción preferida. Evite utilizar |
Pytest 8
Pytest es un framework de pruebas para proyectos basados en Python. Con Pytest, puedes escribir casos de prueba sencillos y escalables para su código. Pytest 8 ya está disponible, eliminando numerosas funciones obsoletas e introduciendo algunos cambios importantes. Las actualizaciones más destacadas incluyen:
-
Se mejoraron las diferencias que
pytest
imprime cuando falla la aserción. -
El método interno
FixtureManager.getfixtureclosure
ha cambiado. Los complementos que usan este método o que subclasifican el componenteFixtureManager
y sobrescribenFixtureManager.getfixtureclosure
deberán adaptarse. -
Los envoltorios de gancho de
new-style
ahora se usan internamente. -
Se purifica el manejo del parámetro predeterminado al definir opciones de configuración.
-
Algunos paquetes probablemente no se podrán compilar.
Para más detalles, consulte las anotaciones del último lanzamiento.
PyTorch 2.4
Fedora 41 ofrece la versión 2.4 de PyTorch, la última versión de esta popular biblioteca de Python para aprendizaje profundo utilizando CPU y GPU.
Para más información, consulte el último anuncio de lanzamiento y anotaciones de lanzamiento.
ROCm 6.2
ROCm 6.2 es la última versión de las bibliotecas de cómputo de AMD que funcionan con el kernel de Linux para permitir a los usuarios ejecutar cargas de trabajo de cómputo en sus GPU. Se habilita el máximo número de GPU posible para que la aceleración abierta esté disponible y sea fácil de usar para el mayor público posible. También está integrado con PyTorch en Fedora 41. Consulte las anotaciones del último lanzamiento para detalles.
Python 2 retirado
El paquete python2.7
se ha retirado sin reemplazo de Fedora Linux 41. No habrá Python 2 en Fedora 41 ni en versiones posteriores, salvo PyPy. Los paquetes que requieren Python 2.7 en tiempo de ejecución o de compilación deberán actualizarse para usar Python 3 o también se retirarán.
Golang 1.23
La última versión estable de este lenguaje de programación ya está disponible en Fedora 41. Los cambios notables incluyen:
-
La cláusula
range
del buclefor-range
acepta funciones iterativas como expresiones de intervalo. Los tipos de funciones iterativas admitidos son:-
func(func() bool)
-
func(func(K) bool)
-
func(func(K, V) bool)
Las invocaciones a la función de argumento iterador producen los valores de iteración para el bucle
for-range
. -
-
La cadena de herramientas de Go puede recopilar estadísticas de uso y rupturas. Estas se denominan "telemetría de Go" y representan un sistema de suscripción controlado por la instrucción
go telemetry
. -
La variable de entorno
GOROOT_FINAL
ya no funciona. Instale un enlace simbólico en lugar de reubicar o copiar el binariogo
si su distribución instala la instruccióngo
en un lugar distinto a$GOROOT/bin/go
. -
El mensaje de seguimiento impreso por el entorno de ejecución tras un error fatal ahora sangra la segunda línea y las subsiguientes del mensaje con una sola tabulación.
-
Cambios significativos en la implementación de los tipos
time.Timer
ytime.Ticker
.
Para obtener más detalles, consulte el enlace notas de la versión original.
Perl 5.40
La última versión estable de este lenguaje de programación ya está disponible en Fedora 41. Los cambios notables incluyen:
-
Nueva palabra clave
CLASS
-
Atributo
:reader
para variables de campo. Solicita la creación automática de un método de acceso que devuelva el valor de la variable de campo de la instancia proporcionada. -
Al procesar opciones de la línea de instrucciones, Perl permite un espacio entre el parámetro
-M
y el nombre del módulo que le sigue. -
Se han añadido las funciones
inf
ynan
(experimentales) al espacio de nombresbuiltin
. Actúan como constantes que generan los valores de punto flotante infinito y No-un-Número, respectivamente. -
Invocar al método
import
de un paquete desconocido produce una advertencia. -
La sintaxis del operador
return
ahora rechaza objetos indirectos. -
El uso de
goto
para saltar desde un ámbito externo a uno interno está obsoleto y se eliminará por completo en Perl 5.42.
Para más detalles, consulte las notas de liberación última.
NodeJS 22.0
Fedora 41 ahora incluye Node.js 22.x como motor JavaScript predeterminado del lado del servidor. Si sus aplicaciones aún no están listas para esta nueva versión, deberán modificarse para que dependan del paquete de compatibilidad nodejs20
y de /usr/bin/node20
en lugar de /usr/bin/node
para su funcionamiento.
Haskell GHC 9.6 y Stackage LTS 22
Para Fedora 41, el paquete principal del compilador GHC Haskell se ha actualizado de la versión 9.4.5 a la última versión estable 9.6.6 (rebasando el paquete ghc desde el paquete ghc9.6). Además, los paquetes Haskell en Stackage (la distribución estable de paquetes fuente de Haskell) se han actualizado de las versiones de la LTS 21 a la última versión de la LTS 22. Los paquetes Haskell que no están en Stackage se han actualizado a la última versión correspondiente en el repositorio de paquetes de Hackage.
Para obtener información completa sobre esta versión, consulte las notas de la versión liberadas y la guía de migración.
Actualización de GNU Toolchain
Las herramientas encadenadas de GNU en Fedora 41 han sido actualizadas a:
-
Compilador GNU C (
gcc
) 14.1+ -
Utilidades GNU Binarias (
binutils
) 2.42+ -
Biblioteca GNU C (
glibc
) 2.40 -
GNU Debugger (
gdb
) 14+
Además vea las notas de liberación última para GCC, Binutils, GLibC NEWS, y GDM NEWS.
LLVM 19
Los subproyectos LLVM en Fedora se han actualizado a la versión 19.
Se han añadido los paquetes de compatibilidad clang18
, llvm18
, lld18
, compiler-rt18
y libomp18
para garantizar que los paquetes que dependen de las bibliotecas de clang y llvm versión 18 sigan funcionando. Los paquetes de compatibilidad anteriores presentes en Fedora 40, como llvm17
, clang17
, etc., se han retirado.
Consulte las Notas de Publicación LLVM 19 para información adicional sobre esta liberación.
Want to help? Learn how to contribute to Fedora Docs ›