4.7. Lenguajes de programación dinámicos, servidores web y de bases de datos (traducción automática)

Python 3 es la implementación por defecto Pythonen RHEL 8

Red Hat Enterprise Linux 8 se distribuye conPython 3.6 El paquete no está instalado por defecto. Para instalarPython 3.6, use el yum install python3comando.

Python 2.7 está disponible en el python2paquete. Sin embargo, Python 2tendrá un ciclo de vida más corto y su objetivo es facilitar una transición más suave para Python 3los clientes.

Con RHEL 8 no se distribuye ni el paquete por defecto pythonni el ejecutable no versionado/usr/bin/python. Se aconseja a los clientes que utilicen python3o python2directamente. Alternativamente, los administradores pueden configurar el comando sin versionar pythonusando el alternativescomando.

Para más detalles, véaseUsing Python in Red Hat Enterprise Linux 8

(BZ#1580387)

Los scripts Python deben especificar la versión principal en hashbangs en el momento de la construcción de RPM

En RHEL 8, se espera que los scripts Python ejecutables utilicen hashbangs (shebangs) especificando explícitamente al menos la versión principal de Python.

El script /usr/lib/rpm/redhat/brp-mangle-shebangsbuildroot policy (BRP) se ejecuta automáticamente al crear cualquier paquete RPM. Este script intenta corregir los hashbangs en todos los archivos ejecutables. Cuando el script encuentra hashbangs ambiguos que no pueden ser resueltos en una versión mayor de Python, genera errores. Ejemplos de estos ambiguos hashbangs incluyen:

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

Para modificar los hashbangs en los scripts Python que causan estos errores de compilación en el momento de la compilación RPM, utilice el pathfix.pyscript del paquete platform-python-devel:

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

Se pueden especificar varios PATHs. Si un PATH es un directorio, busca pathfix.pyrecursivamente cualquier script Python que coincida con el patrón^[a-zA-Z0-9_]+\.py$, no sólo aquellos con un hashbang ambiguo. Añada este comando a la %prepsección o al final de la %installsección.

Para más información, véaseHandling hashbangs in Python scripts

(BZ#1583620)

Cambios notables en PHP

Red Hat Enterprise Linux 8 se distribuye conPHP 7.2 En esta versión se introducen los siguientes cambios importantes a lo largo de PHP 5.4, que están disponibles en RHEL 7:

  • PHP utiliza FastCGI Process Manager (FPM) por defecto (seguro para su uso con una roscahttpd)
  • Las variables php_valuey php-flagno deben seguir utilizándose en los archivos de httpdconfiguración, sino que deben configurarse en la configuración del pool: /etc/php-fpm.d/*.conf
  • PHP los errores de guión y las advertencias se registran en el /var/log/php-fpm/www-error.logarchivo en lugar de /var/log/httpd/error.log
  • Cuando se cambia la variable de max_execution_timeconfiguración de PHP, la httpd ProxyTimeoutconfiguración debe ser incrementada para que coincida con
  • El usuario que ejecuta PHPscripts está ahora configurado en la configuración del pool FPM (el /etc/php-fpm/d/www.confarchivo; el apacheusuario es el predeterminado)
  • El php-fpmservicio debe reiniciarse después de un cambio de configuración o después de instalar una nueva extensión

Las siguientes extensiones han sido eliminadas:

  • aspell
  • mysql (tenga en cuenta que las pdo_mysqlextensiones mysqliy las extensiones todavía están disponibles, proporcionadas por el php-mysqlndpaquete)
  • zip
  • memcache

(BZ#1580430, BZ#1691688)

Cambios notables en Ruby

RHEL 8 ofrece Ruby 2.5, que introduce numerosas funciones nuevas y mejoras con respecto Ruby 2.0.0a las disponibles en RHEL 7. Los cambios notables incluyen:

  • Se ha añadido un recolector de basura incremental.
  • Se ha añadido la Refinementssintaxis.
  • Los símbolos son ahora basura recolectada.
  • Los $SAFE=2niveles de $SAFE=3seguridad son ahora obsoletos.
  • Las clases Fixnumy Bignumlas clases se han unificado en la Integerclase.
  • Se ha mejorado el rendimiento optimizando la Hashclase, mejorando el acceso a las variables de la instancia, y la Mutexclase es más pequeña y rápida.
  • Algunas APIs antiguas han sido obsoletas.
  • Se han actualizado las bibliotecas agrupadas, como RubyGemsRake, RDoc, , Psych, , Minitest, y test-unit,.
  • Otras bibliotecas, como mathnDL, ext/tk, , y XMLRPC,, que se distribuían anteriormente con Ruby,, están obsoletas o ya no se incluyen.
  • El esquema de SemVerversionado se utiliza ahora para Rubyversionar.

(BZ#1648843)

Cambios notables en Perl

Perl 5.26distribuido con RHEL 8, introduce los siguientes cambios en la versión disponible en RHEL 7:

  • Unicode 9.0 ahora está soportado.
  • Nuevosop-entry, loading-filey se suministran loaded-file SystemTapsondas.
  • El mecanismo de copia sobre escritura se utiliza cuando se asignan escalares para mejorar el rendimiento.
  • Se ha añadido el IO::Socket::IPmódulo para el manejo transparente de sockets IPv4 e IPv6.
  • Se ha añadido el Config::Perl::Vmódulo para acceder perl -Va los datos de forma estructurada.
  • Se ha añadido un nuevo perl-App-cpanminuspaquete, que contiene la cpanmutilidad para obtener, extraer, construir e instalar módulos desde el repositorio de la Red Integral de Archivos Perl (CPAN).
  • El directorio .actual ha sido eliminado de la ruta de búsqueda del @INCmódulo por razones de seguridad.
  • La dosentencia ahora devuelve una advertencia de deprecación cuando no puede cargar un archivo debido al cambio de comportamiento descrito anteriormente.
  • La do subroutine(LIST)llamada ya no se soporta y se produce un error de sintaxis.
  • Los hash son aleatorios por defecto ahora. El orden en el que se devuelven las claves y los valores de un hash cambia en cada perlejecución. Para desactivar la aleatorización, establezca la variable de PERL_PERTURB_KEYSentorno en 0.
  • Los caracteres literales {inescapables en los patrones de expresión regulares ya no son permitidos.
  • Se ha eliminado el soporte de alcance léxico para la $_variable.
  • Usar el definedoperador en un arreglo o un hash resulta en un error fatal.
  • La importación de funciones desde el UNIVERSALmódulo produce un error fatal.
  • Se han quitado losfind2perl, s2p, a2p, , c2ph, y las pstructherramientas.
  • La ${^ENCODING}instalación ha sido removida. El modo predeterminado de encodingpragma ya no es compatible. Para escribir código fuente en otra codificación que no sea UTF-8, utilice la Filteropción de codificación.
  • El perlembalaje está ahora alineado con el anterior. El perlpaquete instala también los módulos principales, mientras que el /usr/bin/perlintérprete es proporcionado por el perl-interpreterpaquete. En versiones anteriores, el perlpaquete incluía sólo un intérprete mínimo, mientras que el perl-corepaquete incluía tanto al intérprete como a los módulos principales.

(BZ#1511131)

Node.js nuevo en RHEL 8

Node.jsuna plataforma de desarrollo de software para la creación de aplicaciones de red rápidas y escalables en el lenguaje de programación JavaScript, que se ofrece por primera vez en RHEL. Anteriormente sólo estaba disponible como una colección de software. La RHEL 8 proporcionaNode.js 10...

(BZ#1622118)

Cambios notables en SWIG

RHEL 8 incluye la versión 3.0 de Simplified Wrapper and Interface Generator (SWIG), que ofrece numerosas funciones nuevas, mejoras y correcciones de errores en la versión 2.0 distribuida en RHEL 7. En particular, se ha implementado el soporte de la norma C++11. SWIG ahora también soporta Go 1.6, PHP 7. Octava 4.2 y Pitón 3.5.

(BZ#1660051)

Cambios notables en Apache httpd

RHEL 8 se distribuye con el servidor HTTP Apache 2.4.37. Esta versión introduce los siguientes cambios con respecto a la httpddisponible en RHEL 7:

  • El mod_http2paquete, que forma parte del httpdmódulo, es ahora compatible con HTTP/2.
  • El mod_mdpaquete ahora admite el aprovisionamiento y la renovación automatizados de certificados TLS mediante el protocolo ACME (Automatic Certificate Management Environment) (para su uso con proveedores de certificados como Let’s Encrypt)
  • El servidor HTTP Apache ahora soporta la carga de certificados TLS y claves privadas desde tokens de seguridad de hardware directamente desde los PKCS#11módulos. Como resultado, una mod_sslconfiguración ahora puede usar PKCS#11URLs para identificar la clave privada de TLS y, opcionalmente, el certificado de TLS en las SSLCertificateFiledirectivas SSLCertificateKeyFiley.
  • El módulo de multiprocesamiento (MPM) configurado por defecto con el servidor HTTP Apache ha cambiado de un modelo multiproceso en horquilla (conocido como prefork)) a un modelo multihilo de alto rendimientoevent. Los módulos de otros fabricantes que no sean seguros para roscas deben ser reemplazados o retirados. Para cambiar el MPM configurado, edite el /etc/httpd/conf.modules.d/00-mpm.confarchivo. Vea la página de httpd.conf(5)manual para más información.

Para obtener más información sobre httpdel producto, véaseSetting up the Apache HTTP web server...

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

El servidor nginxweb nuevo en RHEL 8

RHEL 8 presenta nginx 1.14un servidor web y proxy que soporta HTTP y otros protocolos, con un enfoque en alta concurrencia, rendimiento y bajo uso de memoria.nginx

El servidor nginxweb ahora soporta la carga de claves privadas de TLS desde los tokens de seguridad de hardware directamente desde los PKCS#11módulos. Como resultado, una nginxconfiguración puede utilizar PKCS#11URLs para identificar la clave privada de TLS en la ssl_certificate_keydirectiva.

(BZ#1545526)

Servidores de base de datos en RHEL 8

RHEL 8 ofrece los siguientes servidores de base de datos:

  • MySQL 8.0un servidor de base de datos SQL multiusuario y multihilo. Consiste en el demonio del MySQLservidor, mysqld, y muchos programas cliente.
  • MariaDB 10.3un servidor de base de datos SQL multiusuario y multihilo. Para todos los fines prácticos, MariaDBes binario-compatible con MySQL.
  • PostgreSQL 10 y PostgreSQL 9.6un sistema avanzado de gestión de base de datos objeto-relacional (DBMS).
  • Redis 5un almacén avanzado de clave-valor. A menudo se le llama servidor de estructura de datos porque las claves pueden contener cadenas, hashes, listas, conjuntos y conjuntos ordenados. Redisse proporciona por primera vez en RHEL.

Tenga en cuenta que el servidor de base de datos NoSQL MongoDBno está incluido en RHEL 8.0 porque utiliza la Licencia Pública del Lado del Servidor (SSPL).

(BZ#1647908)

Cambios notables en MySQL 8.0

RHEL 8 se distribuye con MySQL 8.0, que proporciona, por ejemplo, las siguientes ampliaciones:

  • MySQL incorpora ahora un diccionario de datos transaccionales, que almacena información sobre los objetos de la base de datos.
  • MySQL ahora soporta roles, que son colecciones de privilegios.
  • El juego de caracteres por defecto se ha cambiado de latin1utf8mb4.
  • Se ha añadido soporte para expresiones de tabla comunes, tanto no recursivas como recursivas.
  • MySQL ahora soporta las funciones de ventana, que realizan un cálculo para cada línea de una consulta, utilizando líneas relacionadas.
  • InnoDB ahora soporta las SKIP LOCKEDopciones NOWAITy con el bloqueo de las sentencias de lectura.
  • Se han mejorado las funciones relacionadas con el SIG.
  • Se ha mejorado la funcionalidad de JSON.
  • Los nuevos mariadb-connector-cpaquetes proporcionan una biblioteca de clientes común para MySQLy MariaDBpara... Esta biblioteca es utilizable con cualquier versión de los MySQLservidores de MariaDBbase de datos. Como resultado, el usuario puede conectar una construcción de una aplicación a cualquiera de los MySQLMariaDBservidores distribuidos con RHEL 8.

Además, el MySQL 8.0servidor distribuido con RHEL 8 está configurado para utilizar mysql_native_passwordcomo plug-in de autenticación predeterminado, ya que las herramientas de cliente y las bibliotecas de RHEL 8 son incompatibles con el caching_sha2_passwordmétodo, que se utiliza de forma predeterminada en la versión anteriorMySQL 8.0.

Para cambiar el plug-in de autenticación predeterminado a caching_sha2_password,, edite el /etc/my.cnf.d/mysql-default-authentication-plugin.cnfarchivo de la siguiente manera:

[mysqld]
default_authentication_plugin=caching_sha2_password

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

Cambios notables en MariaDB 10.3

MariaDB 10.3 ofrece numerosas novedades sobre la versión 5.5 distribuida en RHEL 7. Algunos de los cambios más notables son:

  • MariaDB Galera Clusterun cluster multi-master síncrono, es ahora una parte estándar de MariaDB.
  • InnoDB se utiliza como el motor de almacenamiento predeterminado en lugar de XtraDB.
  • Expresiones de tabla comunes
  • Tablas versionadas del sistema
  • FOR presillas
  • Columnas invisibles
  • Secuencias
  • Instantáneo ADD COLUMNpara InnoDB
  • Compresión de columna independiente del motor de almacenamiento
  • Replicación paralela
  • Replicación de múltiples fuentes

Además, los nuevos mariadb-connector-cpaquetes proporcionan una biblioteca de clientes común para MySQLy paraMariaDB... Esta biblioteca es utilizable con cualquier versión de los MySQLservidores de MariaDBbase de datos. Como resultado, el usuario puede conectar una construcción de una aplicación a cualquiera de los MySQLMariaDBservidores distribuidos con RHEL 8.

Véase tambiénUsing MariaDB on Red Hat Enterprise Linux 8...

(BZ#1637034, BZ#1519450)