4.11. Langages de programmation dynamiques, serveurs web et de base de données


Python 3.11 disponible dans RHEL 9

RHEL 9.2 introduit Python 3.11, fourni par le nouveau paquet python3.11 et une suite de paquets construits pour lui, ainsi que l'image de conteneur ubi9/python-311.

Les améliorations notables par rapport à la version précédente de Python 3.9 sont les suivantes :

  • Amélioration significative des performances.
  • Correspondance des modèles structurels à l'aide du nouveau mot-clé match (similaire à switch dans d'autres langues).
  • Amélioration des messages d'erreur, par exemple en cas de parenthèses ou de crochets non fermés.
  • Numéros de ligne exacts pour le débogage et d'autres cas d'utilisation.
  • Prise en charge de la définition des gestionnaires de contexte sur plusieurs lignes en mettant les définitions entre parenthèses.
  • Diverses nouvelles fonctionnalités liées aux indications de type et au module typing, telles que le nouvel opérateur d'union de type X | Y, les génériques variadiques et le nouveau type Self.
  • Emplacements précis des erreurs dans les traces de retour qui pointent vers l'expression qui a causé l'erreur.
  • Un nouveau module de la bibliothèque standard tomllib qui prend en charge l'analyse TOML.
  • Possibilité de soulever et de traiter simultanément plusieurs exceptions sans rapport entre elles grâce aux groupes d'exceptions et à la nouvelle syntaxe except*.

Python 3.11 et les paquets construits pour lui peuvent être installés en parallèle avec Python 3.9 sur le même système.

Pour installer les paquets de la pile python3.11, utilisez, par exemple :

# dnf install python3.11
# dnf install python3.11-pip

Pour lancer l'interpréteur, utilisez, par exemple :

$ python3.11
$ python3.11 -m pip --help

Voir Installation et utilisation de Python pour plus d'informations.

Notez que Python 3.11 aura un cycle de vie plus court que Python 3.9, qui est l'implémentation Python par défaut dans RHEL 9 ; voir Red Hat Enterprise Linux Application Streams Life Cycle.

Bugzilla:2127923

nodejs:18 rebasé à la version 18.14 avec npm rebasé à la version 9

La mise à jour de Node.js 18.14 inclut une mise à jour majeure SemVer de npm de la version 8 à la version 9. Cette mise à jour était nécessaire pour des raisons de maintenance et peut nécessiter une adaptation de la configuration de npm.

Notamment, les paramètres liés à l'authentification qui ne sont pas liés à un registre spécifique ne sont plus pris en charge. Cette modification a été apportée pour des raisons de sécurité. Si vous utilisiez des configurations d'authentification non délimitées, le jeton fourni était envoyé à chaque registre répertorié dans le fichier .npmrc.

Si vous utilisez des jetons d'authentification non codés, générez et fournissez des jetons codés dans le registre dans votre fichier .npmrc.

Si vous avez des lignes de configuration utilisant _auth, comme //registry.npmjs.org/:_auth dans vos fichiers .npmrc, remplacez-les par //registry.npmjs.org/:_authToken=${NPM_TOKEN} et fournissez le jeton scoped que vous avez généré.

Pour une liste complète des changements, voir le journal des changements en amont.

Bugzilla:2178088

git repassé à la version 2.39.1

Le système de contrôle de version Git a été mis à jour à la version 2.39.1, qui apporte des corrections de bogues, des améliorations et des gains de performance par rapport à la version 2.31 publiée précédemment.

Parmi les améliorations notables, citons

  • La commande git log prend désormais en charge un format de remplacement pour la sortie git describe: git log --format=%(describe)
  • La commande git commit supporte désormais l'option --fixup<commit> qui permet de corriger le contenu du commit sans modifier le message de log. Avec cette mise à jour, vous pouvez également utiliser :

    • L'option --fixup=amend:<commit> permet de modifier à la fois le message et le contenu.
    • L'option --fixup=reword:<commit> permet de ne mettre à jour que le message de validation.
  • Vous pouvez utiliser la nouvelle option --reject-shallow avec la commande git clone pour désactiver le clonage à partir d'un référentiel peu profond.
  • La commande git branch prend désormais en charge l'option --recurse-submodules.
  • Vous pouvez maintenant utiliser la commande git merge-tree pour :

    • Tester si deux branches peuvent fusionner.
    • Calculer l'arbre qui résulterait du commit de fusion si les branches étaient fusionnées.
  • Vous pouvez utiliser la nouvelle variable de configuration safe.bareRepository pour filtrer les dépôts nus.

Bugzilla:2139379

git-lfs repassé à la version 3.2.0

L'extension Git Large File Storage (LFS) a été mise à jour à la version 3.2.0, qui apporte des corrections de bogues, des améliorations et des gains de performance par rapport à la version 2.13 publiée précédemment.

Les changements les plus notables sont les suivants :

  • Git LFS introduit un protocole de transport purement basé sur SSH.
  • Git LFS propose désormais un pilote de fusion.
  • L'utilitaire git lfs fsck vérifie désormais également que les pointeurs sont canoniques et que les fichiers LFS attendus ont un format correct.
  • La prise en charge du protocole d'authentification NT LAN Manager (NTLM) a été supprimée. Utilisez plutôt l'authentification Kerberos ou Basic.

Bugzilla:2139383

Un nouveau flux de modules : nginx:1.22

Le serveur web et proxy nginx 1.22 est maintenant disponible en tant que module stream nginx:1.22. Cette mise à jour apporte un certain nombre de corrections de bogues, de correctifs de sécurité, de nouvelles fonctionnalités et d'améliorations par rapport à la version 1.20 publiée précédemment.

Nouvelles fonctionnalités :

  • nginx prend désormais en charge :

    • OpenSSL 3.0 et la fonction SSL_sendfile() lors de l'utilisation d'OpenSSL 3.0.
    • La bibliothèque PCRE2.
    • POP3 et IMAP pipelining dans le module proxy mail.
  • nginx transmet maintenant les lignes d'en-tête Auth-SSL-Protocol et Auth-SSL-Cipher au serveur d'authentification du proxy de messagerie.

Directives renforcées :

  • Plusieurs nouvelles directives sont désormais disponibles, telles que ssl_conf_command et ssl_reject_handshake.
  • La directive proxy_cookie_flags prend désormais en charge les variables.
  • nginx supporte désormais les variables dans les directives suivantes : proxy_ssl_certificate, proxy_ssl_certificate_key, grpc_ssl_certificate, grpc_ssl_certificate_key, uwsgi_ssl_certificate, et uwsgi_ssl_certificate_key.
  • La directive listen du module stream prend désormais en charge un nouveau paramètre fastopen, qui active le mode TCP Fast Open pour les sockets à l'écoute.
  • Une nouvelle directive max_errors a été ajoutée au module proxy mail.

Autres modifications :

  • nginx renvoie désormais toujours une erreur si :

    • La méthode CONNECT est utilisée.
    • Les en-têtes Content-Length et Transfer-Encoding sont spécifiés dans la demande.
    • Le nom de l'en-tête de la requête contient des espaces ou des caractères de contrôle.
    • La ligne d'en-tête de la demande Host contient des espaces ou des caractères de contrôle.
  • nginx bloque désormais toutes les requêtes HTTP/1.0 qui incluent l'en-tête Transfer-Encoding.
  • nginx établit désormais des connexions HTTP/2 en utilisant le protocole de négociation de la couche d'application (ALPN) et ne prend plus en charge le protocole de négociation du protocole suivant (NPN).

Pour installer le flux nginx:1.22, utilisez

# dnf module install nginx:1.22

Pour plus d'informations, voir Installation et configuration de NGINX.

Pour obtenir des informations sur la durée de la prise en charge des flux du module nginx, consultez le cycle de vie des flux d'applications de Red Hat Enterprise Linux.

Bugzilla:2096174

mod_security repassé à la version 2.9.6

Le module mod_security pour le serveur HTTP Apache a été mis à jour à la version 2.9.6, qui apporte de nouvelles fonctionnalités, des corrections de bogues et des correctifs de sécurité par rapport à la version 2.9.3 précédemment disponible.

Parmi les améliorations notables, citons

  • Ajustement des règles d'activation de l'analyseur dans le fichier modsecurity.conf-recommended.
  • Amélioration de la façon dont mod_security analyse les requêtes multipartites HTTP.
  • Ajout d'une nouvelle collection MULTIPART_PART_HEADERS.
  • Ajout d'une résolution d'horodatage en microsecondes à l'horodatage formaté du journal.
  • Ajout des géo-pays manquants.

Bugzilla:2143211

Nouveaux paquets : tomcat

RHEL 9.2 introduit la version 9 du serveur Apache Tomcat. Tomcat est le conteneur de servlets utilisé dans l'implémentation de référence officielle des technologies Java Servlet et JavaServer Pages. Les spécifications de Java Servlet et JavaServer Pages sont développées par Sun dans le cadre du Java Community Process. Tomcat est développé dans un environnement ouvert et participatif et publié sous la licence Apache Software License version 2.0.

Bugzilla:2160511

Un nouveau flux de modules : postgresql:15

RHEL 9.2 introduit PostgreSQL 15 en tant que flux de modules postgresql:15. PostgreSQL 15 offre un certain nombre de nouvelles fonctionnalités et d'améliorations par rapport à la version 13. Les changements notables sont les suivants :

  • Vous pouvez désormais accéder aux données JSON de PostgreSQL en utilisant des indices. Exemple de requête :

    SELECT ('{ "postgres": { "release": 15 }}'::jsonb)['postgres']['release'];
  • PostgreSQL prend désormais en charge les types de données à plages multiples et étend la fonction range_agg pour agréger les types de données à plages multiples.
  • PostgreSQL améliore le suivi et l'observabilité :

    • Vous pouvez désormais suivre la progression des commandes COPY et de l'activité Write-ahead-log (WAL).
    • PostgreSQL fournit désormais des statistiques sur les slots de réplication.
    • En activant le paramètre compute_query_id, vous pouvez désormais suivre une requête de manière unique à travers plusieurs fonctionnalités PostgreSQL, y compris pg_stat_activity ou EXPLAIN VERBOSE.
  • PostgreSQL améliore la prise en charge du parallélisme des requêtes de la manière suivante :

    • Amélioration des performances des analyses séquentielles parallèles.
    • La capacité du langage de procédure SQL (PL/pgSQL) à exécuter des requêtes parallèles lors de l'utilisation de la commande RETURN QUERY.
    • Activation du parallélisme dans la commande REFRESH MATERIALIZED VIEW.
  • PostgreSQL inclut désormais la commande SQL standard MERGE. Vous pouvez utiliser MERGE pour écrire des instructions SQL conditionnelles qui peuvent inclure les actions INSERT, UPDATE et DELETE dans une seule instruction.
  • PostgreSQL fournit les nouvelles fonctions suivantes pour l'utilisation d'expressions régulières pour inspecter les chaînes de caractères : regexp_count(), regexp_instr(), regexp_like(), et regexp_substr().
  • PostgreSQL ajoute le paramètre security_invoker, que vous pouvez utiliser pour interroger les données avec les autorisations de l'appelant de la vue, et non du créateur de la vue. Cela vous permet de vous assurer que les appelants de la vue disposent des autorisations correctes pour travailler avec les données sous-jacentes.
  • PostgreSQL améliore les performances, notamment dans ses installations d'archivage et de sauvegarde.
  • PostgreSQL ajoute la prise en charge des algorithmes de compression sans perte LZ4 et Zstandard (zstd).
  • PostgreSQL améliore ses algorithmes de tri en mémoire et sur disque.
  • La mise à jour du fichier d'unité postgresql.service systemd garantit désormais que le service postgresql est démarré après la mise en route du réseau.

Les modifications suivantes sont incompatibles avec le passé :

  • Les autorisations par défaut du schéma public ont été modifiées. Les utilisateurs nouvellement créés doivent obtenir une autorisation explicite en utilisant la commande GRANT ALL ON SCHEMA public TO myuser;. Par exemple :

    postgres=# CREATE USER mydbuser;
    postgres=# GRANT ALL ON SCHEMA public TO mydbuser;
    postgres=# \c postgres mydbuser
    postgres=$ CREATE TABLE mytable (id int);
  • La fonction libpq PQsendQuery() n'est plus supportée en mode pipeline. Modifiez les applications concernées pour utiliser la fonction PQsendQueryParams() à la place.

Voir aussi Utilisation de PostgreSQL.

Pour installer le flux postgresql:15, utilisez

# dnf module install postgresql:15

Si vous souhaitez effectuer une mise à niveau à partir d'un flux postgresql antérieur dans RHEL 9, migrez vos données PostgreSQL comme décrit dans Migrating to a RHEL 8 version of PostgreSQL (Migration vers une version RHEL 8 de PostgreSQL).

Pour obtenir des informations sur la durée de la prise en charge des flux du module postgresql, consultez le cycle de vie des flux d'applications de Red Hat Enterprise Linux.

Bugzilla:2128410

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.