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 Python
de 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 python3
commande.
Python 2.7
est disponible dans le python2
paquet. Toutefois, Python 2
aura un cycle de vie plus court et son objectif est de faciliter une transition en douceur pour Python 3
les clients.
Ni le paquet par défaut python
ni l'exécutable non versionné ne sont distribués avec RHEL 8. Il est conseillé aux clients d'utiliser python3
ou python2
directement. Alternativement, les administrateurs peuvent configurer la commande non versionnée python
en utilisant la alternatives
commande.
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-shebangs
buildroot 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.py
script 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.py
récursivement les scripts Python correspondant au motif^[a-zA-Z0-9_]+\.py$
, pas seulement ceux qui ont un hashbang ambigu. Ajoutez cette commande à la %prep
section ou à la fin de la %install
section.
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_value
etphp-flag
ne doivent plus être utilisées dans les fichiers dehttpd
configuration ; 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.log
fichier au lieu de/var/log/httpd/error.log
-
Lorsque vous changez la variable de configuration de PHP
max_execution_time
, lehttpd
ProxyTimeout
paramètre doit être augmenté pour correspondre à la variable de configuration de PHP -
L'utilisateur exécutant les
PHP
scripts est maintenant configuré dans la configuration du pool FPM (le/etc/php-fpm/d/www.conf
fichier ; l'apache
utilisateur est par défaut) -
Le
php-fpm
service 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 extensionsmysqli
etpdo_mysql
sont toujours disponibles, fournies parphp-mysqlnd
forfait) -
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.0
disponibles dans RHEL 7. Parmi les changements notables, mentionnons :
- Un collecteur d'ordures incrémentiel a été ajouté.
-
La
Refinements
syntaxe a été ajoutée. - Les symboles sont maintenant ramassés à la poubelle.
-
Les
$SAFE=2
niveaux de$SAFE=3
sécurité sont maintenant obsolètes. -
Les classes
Fixnum
etBignum
et ont été unifiées dans laInteger
classe. -
Les performances ont été améliorées en optimisant la
Hash
classe, en améliorant l'accès aux variables d'instance, et laMutex
classe étant plus petite et plus rapide. - Certaines anciennes API ont été dépréciées.
-
Les bibliothèques groupées, telles que
RubyGems
Rake
,RDoc
,Psych
,Minitest
, ettest-unit
ont été mises à jour. -
D'autres bibliothèques, telles que
mathn
,, etXMLRPC
qui étaient précédemment distribuées avecRuby
, sont obsolètes ou ne sont plus incluses. -
Le schéma de
SemVer
versionnement est maintenant utilisé pour leRuby
versionnement.
(BZ#1648843)
Des changements notables ont été apportés à la Perl
Perl 5.26
distribué avec RHEL 8, introduit les modifications suivantes par rapport à la version disponible dans RHEL 7 :
-
Unicode 9.0
est maintenant supporté. -
Nouveau
op-entry
,loading-file
et lesloaded-file
SystemTap
sondes sont fournies. - Le mécanisme Copy-on-write est utilisé lors de l'assignation des scalaires pour améliorer les performances.
-
Le
IO::Socket::IP
module de gestion transparente des prises IPv4 et IPv6 a été ajouté. -
Le
Config::Perl::V
module permettant d'accéder auxperl -V
données de manière structurée a été ajouté. -
Un nouveau
perl-App-cpanminus
paquet a été ajouté, qui contient l'cpanm
utilitaire 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@INC
module pour des raisons de sécurité. -
L'
do
instruction 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
perl
exécution. Pour désactiver la randomisation, réglez la variable d'PERL_PERTURB_KEYS
environnement sur0
. -
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'
defined
opérateur sur un tableau ou un hachage entraîne une erreur fatale. -
L'importation de fonctions à partir du
UNIVERSAL
module entraîne une erreur fatale. -
Les
find2perl
outils et lespstruct
outils ont été supprimésc2ph
.s2p
a2p
-
L'
${^ENCODING}
installation a été enlevée. Le mode par défaut deencoding
pragma n'est plus supporté. Pour écrire du code source dans un autre encodageUTF-8
, utilisez l'Filter
option de l'encodage. -
L'
perl
emballage est maintenant aligné avec l'amont. Leperl
paquet installe également les modules de base, tandis que l'/usr/bin/perl
interpréteur est fourni par leperl-interpreter
paquet. Dans les versions précédentes, leperl
paquet ne comprenait qu'un interpréteur minimal, alors que leperl-core
paquet comprenait à la fois l'interpréteur et les modules de base.
(BZ#1511131)
Node.js
nouveau dans RHEL 8
Node.js
une 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 httpd
disponibles dans RHEL 7 :
-
Le support HTTP/2 est maintenant fourni par le
mod_http2
paquet, qui fait partie duhttpd
module. -
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_md
package (à utiliser avec les fournisseurs de certificats tels queLet’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#11
modules. Par conséquent, unemod_ssl
configuration peut maintenant utiliser desPKCS#11
URLs pour identifier la clé privée TLS et, en option, le certificat TLS dans lesSSLCertificateFile
directivesSSLCertificateKeyFile
et. -
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.conf
fichier. Voir la page dehttpd.conf(5)
manuel pour plus d'informations.
Pour plus d'informations sur httpd
Setting up the Apache HTTP web server.
(BZ#1632754, BZ#1527084, BZ#1581178)
Le serveur nginx
web nouveau dans RHEL 8
RHEL 8 introduit nginx 1.14
un 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 nginx
Web 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#11
modules. Par conséquent, une nginx
configuration peut utiliser des PKCS#11
URLs pour identifier la clé privée TLS dans la ssl_certificate_key
directive.
(BZ#1545526)
Serveurs de base de données dans RHEL 8
RHEL 8 fournit les serveurs de base de données suivants :
-
MySQL 8.0
un serveur de base de données SQL multi-utilisateurs et multi-threads. Il se compose du démonMySQL
serveur,mysqld
, et de nombreux programmes clients. -
MariaDB 10.3
un serveur de base de données SQL multi-utilisateurs et multi-threads. En pratique,MariaDB
est compatible binairement avecMySQL
. -
PostgreSQL 10
etPostgreSQL 9.6
, un système avancé de gestion de base de données relationnelle-objet (SGBD). -
Redis 5
un 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.Redis
est fourni pour la première fois dans RHEL.
Notez que le serveur de base de données NoSQL MongoDB
n'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
latin1
utf8mb4
. à . - 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 optionsNOWAIT
etSKIP LOCKED
avec 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-c
progiciels fournissent une bibliothèque client commune pourMySQL
etMariaDB
. Cette bibliothèque est utilisable avec n'importe quelle version des serveursMySQL
et desMariaDB
bases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel desMariaDB
serveurs distribués avec RHEL 8MySQL
.
De plus, le MySQL 8.0
serveur 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_password
mé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.cnf
fichier 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 Cluster
un cluster synchrone multi-maîtres, est maintenant une partie standard deMariaDB
. -
InnoDB
est utilisé comme moteur de stockage par défaut au lieu deXtraDB
. - Expressions courantes des tables
- Tables version système
-
FOR
boucles - Colonnes invisibles
- Séquences
-
Instant
ADD COLUMN
pourInnoDB
- Compression de colonne indépendante du moteur de stockage
- Réplication parallèle
- Réplication multi-sources
De plus, les nouveaux mariadb-connector-c
progiciels fournissent une bibliothèque client commune pour MySQL
et MariaDB
. Cette bibliothèque est utilisable avec n'importe quelle version des serveurs MySQL
et des MariaDB
bases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel des MariaDB
serveurs distribués avec RHEL 8MySQL
.
Voir aussi Using MariaDB on Red Hat Enterprise Linux 8.
(BZ#1637034, BZ#1519450)