4.7. Langages de programmation dynamiques, serveurs web et de bases de données (traduction automatique)


Python 3 est l'implémentation par défaut Pythonde RHEL 8

Red Hat Enterprise Linux 8 est distribué avec Python 3.6. Le paquetage n'est pas installé par défaut. Pour installerPython 3.6, utilisez la yum install python3commande.

Python 2.7 est disponible dans le python2paquet. Toutefois, Python 2aura un cycle de vie plus court et son objectif est de faciliter une transition en douceur pour Python 3les clients.

Ni le paquet par défaut pythonni l'exécutable non versionné ne sont distribués avec RHEL 8. Il est conseillé aux clients d'utiliser python3ou python2directement. Alternativement, les administrateurs peuvent configurer la commande non versionnée pythonen utilisant la alternativescommande.

Pour plus de détails, voir Using Python in Red Hat Enterprise Linux 8.

(BZ#1580387)

Les scripts Python doivent spécifier la version majeure dans les hashbangs au moment de la construction du RPM

Dans RHEL 8, les scripts Python exécutables doivent utiliser des hashbangs (shebangs) spécifiant explicitement au moins la version Python majeure.

Le script /usr/lib/rpm/redhat/brp-mangle-shebangsbuildroot policy (BRP) est exécuté automatiquement lors de la création d'un paquet RPM. Ce script tente de corriger les hashbangs dans tous les fichiers exécutables. Lorsque le script rencontre des hashbangs ambigus qui ne peuvent pas être résolus dans une version majeure de Python, il génère des erreurs. Voici des exemples de ces hashbangs ambigus :

  • #! /usr/bin/python
  • #! /usr/bin/env python

Pour modifier les hashbangs dans les scripts Python causant ces erreurs de compilation au moment de la compilation RPM, utilisez le pathfix.pyscript du paquet platform-python-devel :

pathfix.py -pn -i %{__python3} PATH ...

Plusieurs PATHs peuvent être spécifiés. Si un PATH est un répertoire, recherche pathfix.pyrécursivement les scripts Python correspondant au motif^[a-zA-Z0-9_]+\.py$, pas seulement ceux qui ont un hashbang ambigu. Ajoutez cette commande à la %prepsection ou à la fin de la %installsection.

Pour plus d'informations, voir Handling hashbangs in Python scripts.

(BZ#1583620)

Des changements notables ont été apportés à la PHP

Red Hat Enterprise Linux 8 est distribué avec PHP 7.2. Cette version introduit les changements majeurs suivantsPHP 5.4, disponibles dans RHEL 7 :

  • PHP utilise FastCGI Process Manager (FPM) par défaut (sans danger pour une utilisation avec un threadedhttpd)
  • Les variables php_valueet php-flagne doivent plus être utilisées dans les fichiers de httpdconfiguration ; elles doivent plutôt être définies dans la configuration du pool : /etc/php-fpm.d/*.conf
  • PHP les erreurs de script et les avertissements sont enregistrés dans le /var/log/php-fpm/www-error.logfichier au lieu de /var/log/httpd/error.log
  • Lorsque vous changez la variable de configuration de PHPmax_execution_time, le httpd ProxyTimeoutparamètre doit être augmenté pour correspondre à la variable de configuration de PHP
  • L'utilisateur exécutant les PHPscripts est maintenant configuré dans la configuration du pool FPM (le /etc/php-fpm/d/www.conffichier ; l'apacheutilisateur est par défaut)
  • Le php-fpmservice doit être redémarré après un changement de configuration ou après l'installation d'une nouvelle extension

Les extensions suivantes ont été supprimées :

  • aspell
  • mysql (notez que les extensions mysqliet pdo_mysqlsont toujours disponibles, fournies par php-mysqlndforfait)
  • zip
  • memcache

(BZ#1580430, BZ#1691688)

Des changements notables ont été apportés à la Ruby

RHEL 8 fournitRuby 2.5, qui introduit de nombreuses nouvelles fonctionnalités et améliorations Ruby 2.0.0disponibles dans RHEL 7. Parmi les changements notables, mentionnons :

  • Un collecteur d'ordures incrémentiel a été ajouté.
  • La Refinementssyntaxe a été ajoutée.
  • Les symboles sont maintenant ramassés à la poubelle.
  • Les $SAFE=2niveaux de $SAFE=3sécurité sont maintenant obsolètes.
  • Les classes Fixnumet Bignumet ont été unifiées dans la Integerclasse.
  • Les performances ont été améliorées en optimisant la Hashclasse, en améliorant l'accès aux variables d'instance, et la Mutexclasse étant plus petite et plus rapide.
  • Certaines anciennes API ont été dépréciées.
  • Les bibliothèques groupées, telles que RubyGemsRake , RDoc, Psych,Minitest, et test-unit ont été mises à jour.
  • D'autres bibliothèques, telles que mathn,, et XMLRPC qui étaient précédemment distribuées avecRuby, sont obsolètes ou ne sont plus incluses.
  • Le schéma de SemVerversionnement est maintenant utilisé pour le Rubyversionnement.

(BZ#1648843)

Des changements notables ont été apportés à la Perl

Perl 5.26distribué avec RHEL 8, introduit les modifications suivantes par rapport à la version disponible dans RHEL 7 :

  • Unicode 9.0 est maintenant supporté.
  • Nouveauop-entry, loading-fileet les loaded-file SystemTapsondes sont fournies.
  • Le mécanisme Copy-on-write est utilisé lors de l'assignation des scalaires pour améliorer les performances.
  • Le IO::Socket::IPmodule de gestion transparente des prises IPv4 et IPv6 a été ajouté.
  • Le Config::Perl::Vmodule permettant d'accéder aux perl -Vdonnées de manière structurée a été ajouté.
  • Un nouveau perl-App-cpanminuspaquet a été ajouté, qui contient l'cpanmutilitaire permettant d'obtenir, d'extraire, de construire et d'installer des modules depuis le référentiel Comprehensive Perl Archive Network (CPAN).
  • Le répertoire .courant a été supprimé du chemin de recherche du @INCmodule pour des raisons de sécurité.
  • L'doinstruction retourne maintenant un avertissement de suppression lorsqu'elle ne charge pas un fichier en raison du changement de comportement décrit ci-dessus.
  • L'do subroutine(LIST)appel n'est plus pris en charge et entraîne une erreur de syntaxe.
  • Les hashes sont maintenant randomisés par défaut. L'ordre dans lequel les clés et les valeurs sont retournées d'un hachage change à chaque perlexécution. Pour désactiver la randomisation, réglez la variable d'PERL_PERTURB_KEYSenvironnement sur 0.
  • Les caractères littéraux {non évités dans les modèles d'expression régulière ne sont plus autorisés.
  • La prise en charge de la portée lexicale de la $_variable a été supprimée.
  • L'utilisation de l'definedopérateur sur un tableau ou un hachage entraîne une erreur fatale.
  • L'importation de fonctions à partir du UNIVERSALmodule entraîne une erreur fatale.
  • Les find2perloutils et les pstructoutils ont été supprimésc2ph.s2pa2p
  • L'${^ENCODING}installation a été enlevée. Le mode par défaut de encodingpragma n'est plus supporté. Pour écrire du code source dans un autre encodageUTF-8, utilisez l'Filteroption de l'encodage.
  • L'perlemballage est maintenant aligné avec l'amont. Le perlpaquet installe également les modules de base, tandis que l'/usr/bin/perlinterpréteur est fourni par le perl-interpreterpaquet. Dans les versions précédentes, le perlpaquet ne comprenait qu'un interpréteur minimal, alors que le perl-corepaquet comprenait à la fois l'interpréteur et les modules de base.

(BZ#1511131)

Node.js nouveau dans RHEL 8

Node.jsune plate-forme de développement de logiciels permettant de créer des applications réseau rapides et évolutives dans le langage de programmation JavaScript, est fournie pour la première fois dans RHEL. Auparavant, il n'était disponible que sous la forme d'une collection de logiciels. RHEL 8 fournit Node.js 10.

(BZ#1622118)

Changements notables dans SWIG

RHEL 8 inclut la version 3.0 du SWIG (Simplified Wrapper and Interface Generator), qui offre de nombreuses nouvelles fonctionnalités, améliorations et corrections de bugs sur la version 2.0 distribuée dans RHEL 7. Plus particulièrement, le support de la norme C+++11 a été implémenté. SWIG supporte maintenant aussi Go 1.6, PHP 7. Octave 4.2, et Python 3.5.

(BZ#1660051)

Changements notables dans Apache httpd

RHEL 8 est distribué avec le serveur HTTP Apache 2.4.37. Cette version introduit les changements suivants httpddisponibles dans RHEL 7 :

  • Le support HTTP/2 est maintenant fourni par le mod_http2paquet, qui fait partie du httpdmodule.
  • Le provisionnement et le renouvellement automatisés des certificats TLS à l'aide du protocole ACME (Automatic Certificate Management Environment) sont désormais pris en charge avec le mod_mdpackage (à utiliser avec les fournisseurs de certificats tels que Let’s Encrypt)
  • Le serveur HTTP Apache prend désormais en charge le chargement des certificats TLS et des clés privées à partir de jetons de sécurité matérielle directement depuis les PKCS#11modules. Par conséquent, une mod_sslconfiguration peut maintenant utiliser des PKCS#11URLs pour identifier la clé privée TLS et, en option, le certificat TLS dans les SSLCertificateFiledirectives SSLCertificateKeyFileet.
  • Le module multiprocesseur (MPM) configuré par défaut avec le serveur HTTP Apache est passé d'un modèle multiprocesseur à fourche (connu sous le nom de prefork) à un modèle multithread à hautes performances, event. Tous les modules tiers qui ne sont pas sécurisés par un filetage doivent être remplacés ou retirés. Pour modifier le MPM configuré, éditez le /etc/httpd/conf.modules.d/00-mpm.conffichier. Voir la page de httpd.conf(5)manuel pour plus d'informations.

Pour plus d'informations sur httpdSetting up the Apache HTTP web server.

(BZ#1632754, BZ#1527084, BZ#1581178)

Le serveur nginxweb nouveau dans RHEL 8

RHEL 8 introduit nginx 1.14un serveur web et proxy supportant HTTP et d'autres protocoles, avec un accent sur la haute simultanéité, la performance et la faible utilisation de la mémoire. nginxétait auparavant disponible uniquement sous forme de collection de logiciels.

Le serveur nginxWeb prend désormais en charge le chargement des clés privées TLS à partir de jetons de sécurité matérielle directement à partir des PKCS#11modules. Par conséquent, une nginxconfiguration peut utiliser des PKCS#11URLs pour identifier la clé privée TLS dans la ssl_certificate_keydirective.

(BZ#1545526)

Serveurs de base de données dans RHEL 8

RHEL 8 fournit les serveurs de base de données suivants :

  • MySQL 8.0un serveur de base de données SQL multi-utilisateurs et multi-threads. Il se compose du démon MySQLserveur, mysqld, et de nombreux programmes clients.
  • MariaDB 10.3un serveur de base de données SQL multi-utilisateurs et multi-threads. En pratique, MariaDBest compatible binairement avec MySQL.
  • PostgreSQL 10 etPostgreSQL 9.6, un système avancé de gestion de base de données relationnelle-objet (SGBD).
  • Redis 5un magasin de valeur clé avancé. Il est souvent appelé serveur de structure de données parce que les clés peuvent contenir des chaînes de caractères, des hachages, des listes, des ensembles et des ensembles triés. Redisest fourni pour la première fois dans RHEL.

Notez que le serveur de base de données NoSQL MongoDBn'est pas inclus dans RHEL 8.0 car il utilise la Server Side Public License (SSPL).

(BZ#1647908)

Des changements notables ont été apportés à la MySQL 8.0

RHEL 8 est distribué avecMySQL 8.0, qui fournit, par exemple, les extensions suivantes :

  • MySQL intègre désormais un dictionnaire de données transactionnelles, qui stocke des informations sur les objets de la base de données.
  • MySQL supporte maintenant les rôles, qui sont des ensembles de privilèges.
  • Le jeu de caractères par défaut a été modifié de latin1utf8mb4. à .
  • La prise en charge des expressions courantes des tables, à la fois non récursives et récursives, a été ajoutée.
  • MySQL prend désormais en charge les fonctions de la fenêtre, qui effectuent un calcul pour chaque ligne à partir d'une requête, en utilisant les lignes liées.
  • InnoDB supporte maintenant les options NOWAITet SKIP LOCKEDavec les instructions de verrouillage en lecture.
  • Les fonctions liées aux SIG ont été améliorées.
  • La fonctionnalité JSON a été améliorée.
  • Les nouveaux mariadb-connector-cprogiciels fournissent une bibliothèque client commune pour MySQLet MariaDB. Cette bibliothèque est utilisable avec n'importe quelle version des serveurs MySQLet des MariaDBbases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel des MariaDBserveurs distribués avec RHEL 8MySQL.

De plus, le MySQL 8.0serveur distribué avec RHEL 8 est configuré pour être utilisé comme plug-in d'authentification par défaut car les outils clients et les bibliothèques de RHEL 8 sont incompatibles avec la caching_sha2_passwordméthode qui est utilisée par défaut dans la version amontMySQL 8.0.

Pour modifier le plug-in d'authentification par défautcaching_sha2_password, modifiez le /etc/my.cnf.d/mysql-default-authentication-plugin.cnffichier comme suit :

[mysqld]
default_authentication_plugin=caching_sha2_password

(BZ#1649891, BZ#1519450, BZ#1631400)

Des changements notables ont été apportés à la MariaDB 10.3

MariaDB 10.3 offre de nombreuses nouveautés par rapport à la version 5.5 distribuée dans RHEL 7. Certains des changements les plus notables sont :

  • MariaDB Galera Clusterun cluster synchrone multi-maîtres, est maintenant une partie standard de MariaDB.
  • InnoDB est utilisé comme moteur de stockage par défaut au lieu de XtraDB.
  • Expressions courantes des tables
  • Tables version système
  • FOR boucles
  • Colonnes invisibles
  • Séquences
  • Instant ADD COLUMNpour InnoDB
  • Compression de colonne indépendante du moteur de stockage
  • Réplication parallèle
  • Réplication multi-sources

De plus, les nouveaux mariadb-connector-cprogiciels fournissent une bibliothèque client commune pour MySQLet MariaDB. Cette bibliothèque est utilisable avec n'importe quelle version des serveurs MySQLet des MariaDBbases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel des MariaDBserveurs distribués avec RHEL 8MySQL.

Voir aussi Using MariaDB on Red Hat Enterprise Linux 8.

(BZ#1637034, BZ#1519450)

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.