4.7. Dynamische Programmiersprachen, Web- und Datenbankserver (Maschinenübersetzung)
Python 3 ist die Standardimplementierung Pythonin RHEL 8
Red Hat Enterprise Linux 8 wird verteilt mit Python 3.6. Das Paket ist standardmäßig nicht installiert. Zur Installation Python 3.6verwenden Sie den yum install python3Befehl.
Python 2.7 ist im python2Paket enthalten. Allerdings Python 2wird ein kürzerer Lebenszyklus haben und sein Ziel ist es, einen reibungsloseren Übergang zu Python 3den Kunden zu erleichtern.
Weder das Standardpaket pythonnoch die nicht versionierte /usr/bin/pythonausführbare Datei werden mit RHEL 8 ausgeliefert. Den Kunden wird empfohlen, diese zu nutzen python3oder python2direkt zu verwenden. Alternativ können Administratoren den nicht versionierten pythonBefehl mit dem alternativesBefehl 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-shebangsBuildroot 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.pySkript aus dem Platform-python-devel-Paket:
pathfix.py -pn -i %{__python3} PATH ...
pathfix.py -pn -i %{__python3} PATH ...
Es können mehrere PATHs angegeben werden. Wenn ein PATH ein Verzeichnis ist, wird pathfix.pyrekursiv 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 %prepAbschnitt oder am Ende des %installAbschnitts 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:
-
PHPverwendet standardmäßig den FastCGI Process Manager (FPM) (sicher für die Verwendung mit einem Gewindehttpd) -
Die Variablen
php_valueundphp-flagsollten nicht mehr in denhttpdKonfigurationsdateien verwendet werden, sondern in der Pool-Konfiguration:/etc/php-fpm.d/*.conf -
PHPskriptfehler und Warnungen werden in der/var/log/php-fpm/www-error.logDatei protokolliert, anstelle von/var/log/httpd/error.log -
Beim Ändern der
max_execution_timePHP-Konfigurationsvariablen sollte diehttpdProxyTimeoutEinstellung entsprechend erhöht werden -
Der Benutzer, der
PHPSkripte ausführt, ist nun in der FPM-Pool-Konfiguration konfiguriert (die/etc/php-fpm/d/www.confDatei; derapacheBenutzer ist der Standard) -
Der
php-fpmDienst 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 diemysqliundpdo_mysqlErweiterungen noch verfügbar sind, die vomphp-mysqlndPaket zur Verfügung gestellt werden.) -
zip -
memcache
(BZ#1580430, BZ#1691688)
Bemerkenswerte Änderungen in der Ruby
RHEL 8 bietet Ruby 2.5zahlreiche neue Funktionen und Verbesserungen gegenüber Ruby 2.0.0RHEL 7. Zu den bemerkenswerten Änderungen gehören:
- Inkrementeller Garbage Collector wurde hinzugefügt.
-
Die
RefinementsSyntax wurde hinzugefügt. - Symbole werden nun als Garbage Collection bezeichnet.
-
Die
$SAFE=2und die$SAFE=3sicheren Stufen sind nun veraltet. -
Die
FixnumundBignumKlassen wurden in derIntegerKlasse vereinheitlicht. -
Die Leistung wurde durch die Optimierung der
HashKlasse, den verbesserten Zugriff auf Instanzvariablen und die kleinere und schnellereMutexKlasse 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 mitRubyverteilt wurden, sind veraltet oder nicht mehr enthalten. -
Das
SemVerVersionierungsschema wird nun für dieRubyVersionierung 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.0wird nun unterstützt. -
Es werden neue
op-entry,loading-fileundloaded-fileSystemTapSonden bereitgestellt. - Der Kopier-/Schreibmechanismus wird bei der Zuweisung von Skalaren zur Leistungssteigerung verwendet.
-
Das
IO::Socket::IPModul zur transparenten Handhabung von IPv4- und IPv6-Sockeln wurde hinzugefügt. -
Das
Config::Perl::VModul zum strukturierten Zugriffperl -Vauf Daten wurde hinzugefügt. -
Ein neues
perl-App-cpanminusPaket wurde hinzugefügt, das dascpanmDienstprogramm 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@INCModulsuchpfad entfernt. -
Die
doAnweisung 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
perlDurchlauf. Um die Randomisierung zu deaktivieren, setzen Sie diePERL_PERTURB_KEYSUmgebungsvariable 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
definedOperators auf einem Array oder einem Hash führt zu einem fatalen Fehler. -
Der Import von Funktionen aus dem
UNIVERSALModul führt zu einem fatalen Fehler. -
Die Symbole
find2perl,s2p,,a2p,c2ph, undpstructWerkzeuge wurden entfernt. -
Die
${^ENCODING}Anlage wurde entfernt. Der Standardmodus desencodingPragma wird nicht mehr unterstützt. Um Quellcode in eine andere Codierung alsUTF-8die, verwenden Sie dieFilterOption der Codierung. -
Die
perlVerpackung ist nun mit dem Upstream ausgerichtet. DasperlPaket installiert auch Kernmodule, während der/usr/bin/perlInterpreter vomperl-interpreterPaket bereitgestellt wird. In früheren Versionen enthielt dasperlPaket nur einen minimalen Interpreter, während dasperl-corePaket sowohl den Interpreter als auch die Kernmodule enthielt.
(BZ#1511131)
Node.js neu in RHEL 8
Node.jseine 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 httpdder in RHEL 7 verfügbaren Version ein:
-
Die HTTP/2-Unterstützung wird nun vom
mod_http2Paket bereitgestellt, das Teil deshttpdModuls ist. -
Die automatisierte TLS-Zertifikatsbereitstellung und -erneuerung mit dem Protokoll Automatic Certificate Management Environment (ACME) wird nun vom
mod_mdPaket 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#11Modulen. Infolgedessen kann einemod_sslKonfiguration nunPKCS#11URLs verwenden, um den privaten TLS-Schlüssel und optional das TLS-Zertifikat in denSSLCertificateKeyFileundSSLCertificateFileDirektiven 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.eventAlle 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.confDatei. Weitere Informationen finden Sie in derhttpd.conf(5)Man Page.
Weitere Informationen zu httpdden folgenden Themen finden Sie unter Setting up the Apache HTTP web server.
(BZ#1632754, BZ#1527084, BZ#1581178)
Der nginxWebserver 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 nginxwar er nur als Software Collection erhältlich.
Der nginxWebserver unterstützt nun das Laden von TLS-Privatschlüsseln aus Hardware-Sicherheitstoken direkt aus PKCS#11Modulen. Dadurch kann eine nginxKonfiguration URLs verwendenPKCS#11, um den privaten TLS-Schlüssel in der ssl_certificate_keyDirektive 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 demMySQLServer-Daemon,mysqld,, und vielen Client-Programmen. -
MariaDB 10.3, ein Mehrbenutzer- und Multithread-SQL-Datenbank-Server. Für alle praktischen ZweckeMariaDBist es binärkompatibel mitMySQL. -
PostgreSQL 10undPostgreSQL 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.Rediswird erstmals in RHEL bereitgestellt.
Beachten Sie, dass der NoSQL-Datenbankserver MongoDBin 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.0ausgeliefert, was z.B. die folgenden Erweiterungen beinhaltet:
-
MySQLenthält nun ein Transaktionsdatendictionary, das Informationen über Datenbankobjekte speichert. -
MySQLunterstü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.
-
MySQLunterstützt nun Fensterfunktionen, die eine Berechnung für jede Zeile einer Query unter Verwendung von Bezugszeilen durchführen. -
InnoDBunterstützt nun dieNOWAITundSKIP LOCKEDOptionen mit Sperren von Leseanweisungen. - Die GIS-bezogenen Funktionen wurden verbessert.
- Die JSON-Funktionalität wurde erweitert.
-
Die neuen
mariadb-connector-cPakete bieten eine gemeinsame Client-Bibliothek fürMySQLundMariaDB. Diese Bibliothek ist mit jeder Version desMySQLMariaDBDatenbankservers verwendbar. Dadurch ist der Benutzer in der Lage, einen Build einer Anwendung mit einem derMySQLmit RHEL 8 verteiltenMariaDBServer zu verbinden.
Darüber hinaus ist der mit RHEL 8 verteilte MySQL 8.0Server so konfiguriert, dass er als Standard-Authentifizierungs-Plugin verwendet mysql_native_passwordwird, da Client-Tools und -Bibliotheken in RHEL 8 mit der caching_sha2_passwordMethode, die standardmäßig in der Upstream-Version MySQL 8.0verwendet 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.cnfDatei wie folgt:
[mysqld] default_authentication_plugin=caching_sha2_password
[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. -
InnoDBwird als Standard-Speicher-Engine verwendet, anstatt vonXtraDB. - Allgemeine Tabellenausdrücke
- Systemversionierte Tabellen
-
FORschleifen - Unsichtbare Spalten
- Sequenzen
-
Sofort
ADD COLUMNfürInnoDB - Speichermaschinenunabhängige Spaltenkompression
- Parallele Replikation
- Multi-Source-Replikation
Darüber hinaus bieten die neuen mariadb-connector-cPakete eine gemeinsame Client-Bibliothek für MySQLund MariaDB. Diese Bibliothek ist mit jeder Version des MySQLMariaDBDatenbankservers verwendbar. Dadurch ist der Benutzer in der Lage, einen Build einer Anwendung mit einem der MySQLmit RHEL 8 verteilten MariaDBServer zu verbinden.
Siehe auch Using MariaDB on Red Hat Enterprise Linux 8.
(BZ#1637034, BZ#1519450)