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 ...

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:

  • PHP verwendet standardmäßig den FastCGI Process Manager (FPM) (sicher für die Verwendung mit einem Gewindehttpd)
  • Die Variablen php_valueund php-flagsollten nicht mehr in den httpdKonfigurationsdateien 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.logDatei protokolliert, anstelle von /var/log/httpd/error.log
  • Beim Ändern der max_execution_timePHP-Konfigurationsvariablen sollte die httpd ProxyTimeoutEinstellung 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; der apacheBenutzer 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 die mysqliund pdo_mysqlErweiterungen noch verfügbar sind, die vom php-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 Fixnumund BignumKlassen wurden in der IntegerKlasse vereinheitlicht.
  • Die Leistung wurde durch die Optimierung der HashKlasse, den verbesserten Zugriff auf Instanzvariablen und die kleinere und schnellere MutexKlasse verbessert.
  • Bestimmte alte APIs wurden veraltet.
  • Die gebündelten Bibliotheken wieRubyGems,Rake,RDoc,,Psych,Minitest,, undtest-unit, wurden aktualisiert.
  • Andere Bibliotheken wiemathn,DL,,ext/tk, undXMLRPC, die zuvor mit Rubyverteilt wurden, sind veraltet oder nicht mehr enthalten.
  • Das SemVerVersionierungsschema wird nun für die RubyVersionierung 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 neueop-entry, loading-fileund loaded-file SystemTapSonden 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 Zugriff perl -Vauf Daten wurde hinzugefügt.
  • Ein neues perl-App-cpanminusPaket wurde hinzugefügt, das das cpanmDienstprogramm 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 die PERL_PERTURB_KEYSUmgebungsvariable auf 0.
  • 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 Symbolefind2perl,s2p,,a2p,c2ph, und pstructWerkzeuge wurden entfernt.
  • Die ${^ENCODING}Anlage wurde entfernt. Der Standardmodus des encodingPragma wird nicht mehr unterstützt. Um Quellcode in eine andere Codierung als UTF-8die, verwenden Sie die FilterOption der Codierung.
  • Die perlVerpackung ist nun mit dem Upstream ausgerichtet. Das perlPaket installiert auch Kernmodule, während der /usr/bin/perlInterpreter vom perl-interpreterPaket bereitgestellt wird. In früheren Versionen enthielt das perlPaket nur einen minimalen Interpreter, während das perl-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 des httpdModuls 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 eine mod_sslKonfiguration nun PKCS#11URLs verwenden, um den privaten TLS-Schlüssel und optional das TLS-Zertifikat in den SSLCertificateKeyFileund SSLCertificateFileDirektiven 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.confDatei. Weitere Informationen finden Sie in der httpd.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 dem MySQLServer-Daemon,mysqld,, und vielen Client-Programmen.
  • MariaDB 10.3, ein Mehrbenutzer- und Multithread-SQL-Datenbank-Server. Für alle praktischen Zwecke MariaDBist es binärkompatibel mit MySQL.
  • 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. 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:

  • 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. auf utf8mb4. 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 die NOWAITund SKIP 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ü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.

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

(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 in MariaDB.
  • InnoDB wird als Standard-Speicher-Engine verwendet, anstatt von XtraDB.
  • Allgemeine Tabellenausdrücke
  • Systemversionierte Tabellen
  • FOR schleifen
  • Unsichtbare Spalten
  • Sequenzen
  • Sofort ADD COLUMNfür InnoDB
  • 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)