4.7. Dynamische Programmiersprachen, Web- und Datenbankserver (Maschinenübersetzung)
Python 3
ist die Standardimplementierung Python
in RHEL 8
Red Hat Enterprise Linux 8 wird verteilt mit Python 3.6
. Das Paket ist standardmäßig nicht installiert. Zur Installation Python 3.6
verwenden Sie den yum install python3
Befehl.
Python 2.7
ist im python2
Paket enthalten. Allerdings Python 2
wird ein kürzerer Lebenszyklus haben und sein Ziel ist es, einen reibungsloseren Übergang zu Python 3
den Kunden zu erleichtern.
Weder das Standardpaket python
noch die nicht versionierte /usr/bin/python
ausführbare Datei werden mit RHEL 8 ausgeliefert. Den Kunden wird empfohlen, diese zu nutzen python3
oder python2
direkt zu verwenden. Alternativ können Administratoren den nicht versionierten python
Befehl mit dem alternatives
Befehl konfigurieren.
Weitere Informationen finden Sie unter Using Python in Red Hat Enterprise Linux 8.
(BZ#1580387)
Python-Skripte müssen die Hauptversion in Hashbangs zur RPM-Buildzeit angeben
In RHEL 8 wird von ausführbaren Python-Skripten erwartet, dass sie Hashbangs (Shebangs) verwenden, die explizit mindestens die Hauptversion von Python angeben.
Das /usr/lib/rpm/redhat/brp-mangle-shebangs
Buildroot Policy (BRP)-Skript wird automatisch ausgeführt, wenn ein RPM-Paket erstellt wird. Dieses Skript versucht, Hashbangs in allen ausführbaren Dateien zu korrigieren. Wenn das Skript auf mehrdeutige Hashbangs stößt, die nicht in eine größere Version von Python aufgelöst werden können, erzeugt es Fehler. Beispiele für solche mehrdeutigen Hash-Bangs sind:
-
#! /usr/bin/python
-
#! /usr/bin/env python
Um Hashangs in den Python-Skripten zu ändern, die diese Build-Fehler zur RPM-Buildzeit verursachen, verwenden Sie das pathfix.py
Skript aus dem Platform-python-devel-Paket:
pathfix.py -pn -i %{__python3} PATH ...
Es können mehrere PATHs angegeben werden. Wenn ein PATH ein Verzeichnis ist, wird pathfix.py
rekursiv nach Python-Skripten gesucht, die dem Muster ^[a-zA-Z0-9_]+\.py$
entsprechen, nicht nur nach solchen mit einem mehrdeutigen Hashbang. Fügen Sie diesen Befehl dem %prep
Abschnitt oder am Ende des %install
Abschnitts hinzu.
Weitere Informationen finden Sie unter Handling hashbangs in Python scripts.
(BZ#1583620)
Bemerkenswerte Änderungen in der PHP
Red Hat Enterprise Linux 8 wird verteilt mit PHP 7.2
. Diese Version führt die folgenden wesentlichen Änderungen einPHP 5.4
, die in RHEL 7 verfügbar sind:
-
PHP
verwendet standardmäßig den FastCGI Process Manager (FPM) (sicher für die Verwendung mit einem Gewindehttpd
) -
Die Variablen
php_value
undphp-flag
sollten nicht mehr in denhttpd
Konfigurationsdateien verwendet werden, sondern in der Pool-Konfiguration:/etc/php-fpm.d/*.conf
-
PHP
skriptfehler und Warnungen werden in der/var/log/php-fpm/www-error.log
Datei protokolliert, anstelle von/var/log/httpd/error.log
-
Beim Ändern der
max_execution_time
PHP-Konfigurationsvariablen sollte diehttpd
ProxyTimeout
Einstellung entsprechend erhöht werden -
Der Benutzer, der
PHP
Skripte ausführt, ist nun in der FPM-Pool-Konfiguration konfiguriert (die/etc/php-fpm/d/www.conf
Datei; derapache
Benutzer ist der Standard) -
Der
php-fpm
Dienst muss nach einer Konfigurationsänderung oder nach der Installation einer neuen Erweiterung neu gestartet werden
Die folgenden Erweiterungen wurden entfernt:
-
aspell
-
mysql
(beachten Sie, dass diemysqli
undpdo_mysql
Erweiterungen noch verfügbar sind, die vomphp-mysqlnd
Paket zur Verfügung gestellt werden.) -
zip
-
memcache
(BZ#1580430, BZ#1691688)
Bemerkenswerte Änderungen in der Ruby
RHEL 8 bietet Ruby 2.5
zahlreiche neue Funktionen und Verbesserungen gegenüber Ruby 2.0.0
RHEL 7. Zu den bemerkenswerten Änderungen gehören:
- Inkrementeller Garbage Collector wurde hinzugefügt.
-
Die
Refinements
Syntax wurde hinzugefügt. - Symbole werden nun als Garbage Collection bezeichnet.
-
Die
$SAFE=2
und die$SAFE=3
sicheren Stufen sind nun veraltet. -
Die
Fixnum
undBignum
Klassen wurden in derInteger
Klasse vereinheitlicht. -
Die Leistung wurde durch die Optimierung der
Hash
Klasse, den verbesserten Zugriff auf Instanzvariablen und die kleinere und schnellereMutex
Klasse verbessert. - Bestimmte alte APIs wurden veraltet.
-
Die gebündelten Bibliotheken wie
RubyGems
,Rake
,RDoc
,,Psych
,Minitest
,, undtest-unit
, wurden aktualisiert. -
Andere Bibliotheken wie
mathn
,DL
,,ext/tk
, undXMLRPC
, die zuvor mitRuby
verteilt wurden, sind veraltet oder nicht mehr enthalten. -
Das
SemVer
Versionierungsschema wird nun für dieRuby
Versionierung verwendet.
(BZ#1648843)
Bemerkenswerte Änderungen in der Perl
Perl 5.26
, vertrieben mit RHEL 8, führt die folgenden Änderungen gegenüber der in RHEL 7 verfügbaren Version ein:
-
Unicode 9.0
wird nun unterstützt. -
Es werden neue
op-entry
,loading-file
undloaded-file
SystemTap
Sonden bereitgestellt. - Der Kopier-/Schreibmechanismus wird bei der Zuweisung von Skalaren zur Leistungssteigerung verwendet.
-
Das
IO::Socket::IP
Modul zur transparenten Handhabung von IPv4- und IPv6-Sockeln wurde hinzugefügt. -
Das
Config::Perl::V
Modul zum strukturierten Zugriffperl -V
auf Daten wurde hinzugefügt. -
Ein neues
perl-App-cpanminus
Paket wurde hinzugefügt, das dascpanm
Dienstprogramm zum Abrufen, Extrahieren, Erstellen und Installieren von Modulen aus dem CPAN-Repository (Comprehensive Perl Archive Network) enthält. -
Das aktuelle Verzeichnis
.
wurde aus Sicherheitsgründen aus dem@INC
Modulsuchpfad entfernt. -
Die
do
Anweisung gibt nun eine Verfallswarnung zurück, wenn sie eine Datei aufgrund der oben beschriebenen Verhaltensänderung nicht lädt. -
Der
do subroutine(LIST)
Aufruf wird nicht mehr unterstützt und führt zu einem Syntaxfehler. -
Hashes sind jetzt standardmäßig randomisiert. Die Reihenfolge, in der Schlüssel und Werte aus einem Hash zurückgegeben werden, ändert sich bei jedem
perl
Durchlauf. Um die Randomisierung zu deaktivieren, setzen Sie diePERL_PERTURB_KEYS
Umgebungsvariable auf0
. -
Ungeformte literale
{
Zeichen in regulären Ausdrucksmustern sind nicht mehr zulässig. -
Die Unterstützung des Lexikalbereichs für die
$_
Variable wurde entfernt. -
Die Verwendung des
defined
Operators auf einem Array oder einem Hash führt zu einem fatalen Fehler. -
Der Import von Funktionen aus dem
UNIVERSAL
Modul führt zu einem fatalen Fehler. -
Die Symbole
find2perl
,s2p
,,a2p
,c2ph
, undpstruct
Werkzeuge wurden entfernt. -
Die
${^ENCODING}
Anlage wurde entfernt. Der Standardmodus desencoding
Pragma wird nicht mehr unterstützt. Um Quellcode in eine andere Codierung alsUTF-8
die, verwenden Sie dieFilter
Option der Codierung. -
Die
perl
Verpackung ist nun mit dem Upstream ausgerichtet. Dasperl
Paket installiert auch Kernmodule, während der/usr/bin/perl
Interpreter vomperl-interpreter
Paket bereitgestellt wird. In früheren Versionen enthielt dasperl
Paket nur einen minimalen Interpreter, während dasperl-core
Paket sowohl den Interpreter als auch die Kernmodule enthielt.
(BZ#1511131)
Node.js
neu in RHEL 8
Node.js
eine Software-Entwicklungsplattform zum Aufbau schneller und skalierbarer Netzwerkanwendungen in der Programmiersprache JavaScript, wird erstmals in RHEL angeboten. Sie war bisher nur als Software-Sammlung erhältlich. RHEL 8 bietet Node.js 10
.
(BZ#1622118)
Bemerkenswerte Änderungen in SWIG
RHEL 8 enthält den Simplified Wrapper and Interface Generator (SWIG) Version 3.0, der zahlreiche neue Funktionen, Verbesserungen und Bugfixes gegenüber der in RHEL 7 vertriebenen Version 2.0 bietet. Insbesondere wurde die Unterstützung des C++11-Standards implementiert. SWIG unterstützt nun auch Go 1.6, PHP 7. Octave 4.2 und Python 3.5.
(BZ#1660051)
Bemerkenswerte Änderungen im Apache httpd
RHEL 8 wird mit dem Apache HTTP Server 2.4.37 ausgeliefert. Diese Version führt die folgenden Änderungen gegenüber httpd
der in RHEL 7 verfügbaren Version ein:
-
Die HTTP/2-Unterstützung wird nun vom
mod_http2
Paket bereitgestellt, das Teil deshttpd
Moduls ist. -
Die automatisierte TLS-Zertifikatsbereitstellung und -erneuerung mit dem Protokoll Automatic Certificate Management Environment (ACME) wird nun vom
mod_md
Paket unterstützt (zur Verwendung mit Zertifikatsanbietern wie z.B.Let’s Encrypt
) -
Der Apache HTTP Server unterstützt nun das Laden von TLS-Zertifikaten und privaten Schlüsseln aus Hardware-Sicherheitstoken direkt aus
PKCS#11
Modulen. Infolgedessen kann einemod_ssl
Konfiguration nunPKCS#11
URLs verwenden, um den privaten TLS-Schlüssel und optional das TLS-Zertifikat in denSSLCertificateKeyFile
undSSLCertificateFile
Direktiven zu identifizieren. -
Das Multi-Processing-Modul (MPM), das standardmäßig mit dem Apache HTTP Server konfiguriert ist, hat sich von einem Multi-Prozess-Gabelmodell (bekannt als
prefork
) zu einem leistungsstarken Multi-Thread-Modell gewandelt.event
Alle Module von Drittanbietern, die nicht threadsicher sind, müssen ersetzt oder entfernt werden. Um das konfigurierte MPM zu ändern, bearbeiten Sie die/etc/httpd/conf.modules.d/00-mpm.conf
Datei. Weitere Informationen finden Sie in derhttpd.conf(5)
Man Page.
Weitere Informationen zu httpd
den folgenden Themen finden Sie unter Setting up the Apache HTTP web server.
(BZ#1632754, BZ#1527084, BZ#1581178)
Der nginx
Webserver neu in RHEL 8
RHEL 8 stellt einen Web- und Proxy-Server vornginx 1.14
, der HTTP und andere Protokolle unterstützt, wobei der Schwerpunkt auf hoher Parallelität, Leistung und geringer Speicherauslastung liegt. Bisher nginx
war er nur als Software Collection erhältlich.
Der nginx
Webserver unterstützt nun das Laden von TLS-Privatschlüsseln aus Hardware-Sicherheitstoken direkt aus PKCS#11
Modulen. Dadurch kann eine nginx
Konfiguration URLs verwendenPKCS#11
, um den privaten TLS-Schlüssel in der ssl_certificate_key
Direktive zu identifizieren.
(BZ#1545526)
Datenbankserver in RHEL 8
RHEL 8 stellt die folgenden Datenbankserver zur Verfügung:
-
MySQL 8.0
, ein Mehrbenutzer- und Multithread-SQL-Datenbank-Server. Es besteht aus demMySQL
Server-Daemon,mysqld
,, und vielen Client-Programmen. -
MariaDB 10.3
, ein Mehrbenutzer- und Multithread-SQL-Datenbank-Server. Für alle praktischen ZweckeMariaDB
ist es binärkompatibel mitMySQL
. -
PostgreSQL 10
undPostgreSQL 9.6
, ein fortschrittliches objektrelationales Datenbankmanagementsystem (DBMS). -
Redis 5
, ein erweiterter Key-Value-Speicher. Er wird oft als Datenstrukturserver bezeichnet, da Schlüssel Zeichenketten, Hashes, Listen, Sets und sortierte Sets enthalten können.Redis
wird erstmals in RHEL bereitgestellt.
Beachten Sie, dass der NoSQL-Datenbankserver MongoDB
in RHEL 8.0 nicht enthalten ist, da er die Server Side Public License (SSPL) verwendet.
(BZ#1647908)
Bemerkenswerte Änderungen in der MySQL 8.0
RHEL 8 wird mit MySQL 8.0
ausgeliefert, was z.B. die folgenden Erweiterungen beinhaltet:
-
MySQL
enthält nun ein Transaktionsdatendictionary, das Informationen über Datenbankobjekte speichert. -
MySQL
unterstützt nun Rollen, die Sammlungen von Berechtigungen sind. -
Der Standardzeichensatz wurde von
latin1
. aufutf8mb4
. geändert. - Die Unterstützung für allgemeine Tabellenausdrücke, sowohl nicht rekursive als auch rekursive, wurde hinzugefügt.
-
MySQL
unterstützt nun Fensterfunktionen, die eine Berechnung für jede Zeile einer Query unter Verwendung von Bezugszeilen durchführen. -
InnoDB
unterstützt nun dieNOWAIT
undSKIP LOCKED
Optionen mit Sperren von Leseanweisungen. - Die GIS-bezogenen Funktionen wurden verbessert.
- Die JSON-Funktionalität wurde erweitert.
-
Die neuen
mariadb-connector-c
Pakete bieten eine gemeinsame Client-Bibliothek fürMySQL
undMariaDB
. Diese Bibliothek ist mit jeder Version desMySQL
MariaDB
Datenbankservers verwendbar. Dadurch ist der Benutzer in der Lage, einen Build einer Anwendung mit einem derMySQL
mit RHEL 8 verteiltenMariaDB
Server zu verbinden.
Darüber hinaus ist der mit RHEL 8 verteilte MySQL 8.0
Server so konfiguriert, dass er als Standard-Authentifizierungs-Plugin verwendet mysql_native_password
wird, da Client-Tools und -Bibliotheken in RHEL 8 mit der caching_sha2_password
Methode, die standardmäßig in der Upstream-Version MySQL 8.0
verwendet wird, nicht kompatibel sind.
Um das Standard-Authentifizierungs-Plugin zu caching_sha2_password
ändern, bearbeiten Sie die /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
Datei wie folgt:
[mysqld] default_authentication_plugin=caching_sha2_password
(BZ#1649891, BZ#1519450, BZ#1631400)
Bemerkenswerte Änderungen in der MariaDB 10.3
MariaDB 10.3
bietet zahlreiche neue Funktionen gegenüber der in RHEL 7 verteilten Version 5.5. Einige der bemerkenswertesten Änderungen sind:
-
MariaDB Galera Cluster
, ein synchroner Multi-Master-Cluster, ist nun Standard inMariaDB
. -
InnoDB
wird als Standard-Speicher-Engine verwendet, anstatt vonXtraDB
. - Allgemeine Tabellenausdrücke
- Systemversionierte Tabellen
-
FOR
schleifen - Unsichtbare Spalten
- Sequenzen
-
Sofort
ADD COLUMN
fürInnoDB
- Speichermaschinenunabhängige Spaltenkompression
- Parallele Replikation
- Multi-Source-Replikation
Darüber hinaus bieten die neuen mariadb-connector-c
Pakete eine gemeinsame Client-Bibliothek für MySQL
und MariaDB
. Diese Bibliothek ist mit jeder Version des MySQL
MariaDB
Datenbankservers verwendbar. Dadurch ist der Benutzer in der Lage, einen Build einer Anwendung mit einem der MySQL
mit RHEL 8 verteilten MariaDB
Server zu verbinden.
Siehe auch Using MariaDB on Red Hat Enterprise Linux 8.
(BZ#1637034, BZ#1519450)