4.7. Linguaggi di programmazione dinamici, server web e database (traduzione automatica)
Python 3
è l'implementazione predefinita Python
in RHEL 8
Red Hat Enterprise Linux 8 è distribuito con Python 3.6
. Il pacchetto non è installato di default. Per installarePython 3.6
, utilizzare il yum install python3
comando.
Python 2.7
è disponibile nella python2
confezione. Tuttavia, Python 2
avrà un ciclo di vita più breve e il suo scopo è quello di facilitare una transizione più agevole Python 3
per i clienti.
Con RHEL 8 non vengono distribuiti né il pacchetto predefinito python
né l'/usr/bin/python
eseguibile non modificato. I clienti sono invitati a utilizzare python3
o python2
direttamente. In alternativa, gli amministratori possono configurare il comando unversioned python
usando il alternatives
comando.
Per i dettagli, vedere Using Python in Red Hat Enterprise Linux 8.
(BZ#1580387)
Gli script Python devono specificare la versione principale negli hashbangs al momento della compilazione di RPM
In RHEL 8, gli script eseguibili Python devono utilizzare hashbangs (shebangs) specificando esplicitamente almeno la versione principale di Python.
Lo script /usr/lib/rpm/redhat/brp-mangle-shebangs
buildroot policy (BRP) viene eseguito automaticamente quando si costruisce un qualsiasi pacchetto RPM. Questo script tenta di correggere gli hashbang in tutti i file eseguibili. Quando lo script incontra hashbang ambigui che non possono essere risolti con una versione maggiore di Python, genera errori. Esempi di questi hashbang ambigui sono:
-
#! /usr/bin/python
-
#! /usr/bin/env python
Per modificare gli hashbangs negli script Python che causano questi errori di compilazione al momento della compilazione di RPM, utilizzare lo pathfix.py
script del pacchetto platform-python-devel:
pathfix.py -pn -i %{__python3} PATH ...
È possibile specificare più PATH. Se un PATH è una directory, verifica pathfix.py
ricorsivamente la presenza di qualsiasi script Python che corrisponda allo schema^[a-zA-Z0-9_]+\.py$
, non solo quelli con un hashbang ambiguo. Aggiungere questo comando alla %prep
sezione o alla fine della %install
sezione.
Per ulteriori informazioni, vedere Handling hashbangs in Python scripts.
(BZ#1583620)
Notevoli cambiamenti in PHP
Red Hat Enterprise Linux 8 è distribuito con PHP 7.2
. Questa versione introduce le seguenti importanti modifichePHP 5.4
, disponibili in RHEL 7:
-
PHP
usa FastCGI Process Manager (FPM) per impostazione predefinita (sicuro per l'uso con un threadedhttpd
) -
Le variabili
php_value
ephp-flag
le variabili non dovrebbero più essere usate nei file dihttpd
configurazione, ma dovrebbero essere impostate nella configurazione del pool:/etc/php-fpm.d/*.conf
-
PHP
e gli errori di script e gli avvisi vengono registrati nel/var/log/php-fpm/www-error.log
file invece che nel file/var/log/httpd/error.log
-
Quando si cambia la variabile di configurazione di PHP
max_execution_time
, l'httpd
ProxyTimeout
impostazione dovrebbe essere aumentata per corrispondere a -
L'utente che esegue
PHP
gli script è ora configurato nella configurazione del pool FPM (il/etc/php-fpm/d/www.conf
file; l'apache
utente è quello predefinito) -
Il
php-fpm
servizio deve essere riavviato dopo una modifica della configurazione o dopo l'installazione di una nuova estensione
Le seguenti estensioni sono state rimosse:
-
aspell
-
mysql
(notare che le estensionimysqli
epdo_mysql
le estensioni sono ancora disponibili, fornite aphp-mysqlnd
pacchetto) -
zip
-
memcache
(BZ#1580430, BZ#1691688)
Notevoli cambiamenti in Ruby
RHEL 8 fornisceRuby 2.5
, che introduce numerose nuove caratteristiche e miglioramenti rispetto Ruby 2.0.0
a quelli disponibili in RHEL 7. Notevoli cambiamenti includono:
- È stato aggiunto il sistema di raccolta incrementale dei rifiuti.
-
La
Refinements
sintassi è stata aggiunta. - I simboli sono ora raccolti nella spazzatura.
-
I
$SAFE=2
livelli di$SAFE=3
sicurezza sono ormai obsoleti. -
Le classi
Fixnum
eBignum
le classi sono state unificate nellaInteger
classe. -
Le prestazioni sono state migliorate ottimizzando la
Hash
classe, migliorando l'accesso alle variabili di istanza e laMutex
classe è sempre più piccola e veloce. - Alcune vecchie API sono state deprecate.
-
Le librerie in bundle, come
RubyGems
,Rake
, , ,RDoc
, ,Psych
, ,Minitest
, etest-unit
, sono state aggiornate. -
Altre librerie, come
mathn
,DL
, , ,ext/tk
, , eXMLRPC
, che in precedenza erano distribuite conRuby
, sono deprecate o non più incluse. -
Lo schema di
SemVer
versioning è ora utilizzato per laRuby
versioning.
(BZ#1648843)
Notevoli cambiamenti in Perl
Perl 5.26
distribuito con RHEL 8, introduce le seguenti modifiche rispetto alla versione disponibile in RHEL 7:
-
Unicode 9.0
è ora supportato. -
Nuovi
op-entry
,loading-file
, , e leloaded-file
SystemTap
sonde sono forniti. - Il meccanismo di copia in scrittura viene utilizzato quando si assegnano gli scalari per migliorare le prestazioni.
-
E' stato aggiunto il
IO::Socket::IP
modulo per la gestione trasparente delle prese IPv4 e IPv6. -
E' stato aggiunto il
Config::Perl::V
modulo per accedereperl -V
ai dati in modo strutturato. -
È stato aggiunto un nuovo
perl-App-cpanminus
pacchetto che contiene l'cpanm
utilità per ottenere, estrarre, costruire e installare moduli dal repository Comprehensive Perl Archive Network (CPAN). -
La directory
.
corrente è stata rimossa dal percorso di ricerca del@INC
modulo per motivi di sicurezza. -
L'
do
istruzione ora restituisce un avviso di deprecazione quando non riesce a caricare un file a causa del cambiamento comportamentale descritto sopra. -
La
do subroutine(LIST)
chiamata non è più supportata e comporta un errore di sintassi. -
Gli hash sono randomizzati per impostazione predefinita. L'ordine in cui le chiavi e i valori restituiti da un hash cambia ad ogni
perl
esecuzione. Per disabilitare la randomizzazione, impostare la variabile d'PERL_PERTURB_KEYS
ambiente su0
. -
Non sono più ammessi caratteri letterali
{
non scappati nei modelli di espressione regolare. -
Il supporto del campo di applicazione lessicale per la
$_
variabile è stato rimosso. -
L'utilizzo dell'
defined
operatore su una matrice o un hash si traduce in un errore fatale. -
L'importazione di funzioni dal
UNIVERSAL
modulo provoca un errore fatale. -
I tasti
find2perl
,s2p
, , ,a2p
, , ,c2ph
, epstruct
gli strumenti sono stati rimossi. -
La
${^ENCODING}
struttura è stata rimossa. La modalità predefinita delencoding
pragma non è più supportata. Per scrivere il codice sorgente in una codifica diversa daUTF-8
, utilizzare l'Filter
opzione di codifica. -
L'
perl
imballaggio è ora allineato con quello a monte. Ilperl
pacchetto installa anche i moduli principali, mentre l'/usr/bin/perl
interprete è fornito dalperl-interpreter
pacchetto. Nelle versioni precedenti, ilperl
pacchetto comprendeva solo un interprete minimo, mentre ilperl-core
pacchetto comprendeva sia l'interprete che i moduli principali.
(BZ#1511131)
Node.js
nuovo in RHEL 8
Node.js
Per la prima volta in RHEL viene fornita una piattaforma di sviluppo software per la realizzazione di applicazioni di rete veloci e scalabili nel linguaggio di programmazione JavaScript. In precedenza era disponibile solo come raccolta di software. RHEL 8 fornisce Node.js 10
.
(BZ#1622118)
Notevoli cambiamenti in SWIG
RHEL 8 include la versione 3.0 di Simplified Wrapper and Interface Generator (SWIG), che fornisce numerose nuove funzionalità, miglioramenti e correzioni di bug rispetto alla versione 2.0 distribuita in RHEL 7. In particolare, è stato attuato lo standard C+++11. SWIG ora supporta anche Go 1.6, PHP 7. Ottava 4.2, e Pitone 3.5.
(BZ#1660051)
Notevoli cambiamenti in Apache httpd
RHEL 8 è distribuito con il server HTTP Apache 2.4.37. Questa versione introduce le seguenti modifiche httpd
disponibili in RHEL 7:
-
Il supporto HTTP/2 è ora fornito dal
mod_http2
pacchetto, che fa parte delhttpd
modulo. -
Il provisioning automatico dei certificati TLS e il rinnovo utilizzando il protocollo ACME (Automatic Certificate Management Environment) è ora supportato dal
mod_md
pacchetto (per l'utilizzo con fornitori di certificati come ad esempioLet’s Encrypt
) -
Il server HTTP Apache supporta ora il caricamento di certificati TLS e chiavi private da token di sicurezza hardware direttamente dai
PKCS#11
moduli. Come risultato, unamod_ssl
configurazione può ora utilizzarePKCS#11
URL per identificare la chiave privata TLS e, facoltativamente, il certificato TLS nelleSSLCertificateFile
direttiveSSLCertificateKeyFile
e direttive. -
Il modulo multi-processo (MPM) configurato di default con il server HTTP Apache è passato da un modello multi-processo, biforcuto (noto come
prefork
) ad un modello multi-threaded ad alte prestazioni,event
. Tutti i moduli di terze parti che non sono thread-safe devono essere sostituiti o rimossi. Per cambiare il MPM configurato, modificare il/etc/httpd/conf.modules.d/00-mpm.conf
file. Per ulteriori informazioni, vedere la paginahttpd.conf(5)
dedicata ai dipendenti.
Per ulteriori informazioni su httpd
, vedere Setting up the Apache HTTP web server.
(BZ#1632754, BZ#1527084, BZ#1581178)
Il server nginx
web nuovo in RHEL 8
RHEL 8 introduce nginx 1.14
un server web e proxy che supporta l'HTTP e altri protocolli, con particolare attenzione all'alta concorrenza, alle prestazioni e al basso consumo di memoria. nginx
era precedentemente disponibile solo come Software Collection.
Il server nginx
web ora supporta il caricamento di chiavi private TLS da token di sicurezza hardware direttamente dai PKCS#11
moduli. Come risultato, una nginx
configurazione può utilizzare PKCS#11
URL per identificare la chiave privata TLS nella ssl_certificate_key
direttiva.
(BZ#1545526)
Server di database in RHEL 8
RHEL 8 fornisce i seguenti server di database:
-
MySQL 8.0
un server di database SQL multi-utente e multi-threaded. Si compone del demone delMySQL
server emysqld
di molti programmi client. -
MariaDB 10.3
un server di database SQL multi-utente e multi-threaded. Per tutti gli scopi pratici,MariaDB
è binario compatibile conMySQL
. -
PostgreSQL 10
ePostgreSQL 9.6
, un sistema avanzato di gestione di database oggetti-relazionale (DBMS). -
Redis 5
un negozio avanzato di chiavi-valore. Viene spesso indicato come server di struttura dati perché le chiavi possono contenere stringhe, hash, liste, set, set e set ordinati.Redis
Notare che il server di database NoSQL MongoDB
non è incluso in RHEL 8.0 perché utilizza la Server Side Public License (SSPL).
(BZ#1647908)
Notevoli cambiamenti in MySQL 8.0
RHEL 8 è distribuito con MySQL 8.0
, che prevede, ad esempio, i seguenti miglioramenti:
-
MySQL
incorpora ora un dizionario dei dati transazionali, che memorizza informazioni sugli oggetti del database. -
MySQL
ora supporta i ruoli, che sono raccolte di privilegi. -
Il set di caratteri predefinito è stato cambiato da
latin1
autf8mb4
. - È stato aggiunto il supporto per le espressioni comuni delle tabelle, sia non recursive che recursive.
-
MySQL
supporta ora le funzioni della finestra, che eseguono un calcolo per ogni riga di una query, utilizzando le righe correlate. -
InnoDB
supporta ora le istruzioni di letturaNOWAIT
eSKIP LOCKED
le opzioni con le istruzioni di blocco. - Sono state migliorate le funzioni relative ai GIS.
- La funzionalità JSON è stata migliorata.
-
I nuovi
mariadb-connector-c
pacchetti forniscono una comune libreria client perMySQL
eMariaDB
. Questa libreria è utilizzabile con qualsiasi versione del serverMySQL
e delMariaDB
database. Come risultato, l'utente è in grado di collegare una build di un'applicazione a uno qualsiasi deiMySQL
MariaDB
server distribuiti con RHEL 8.
Inoltre, il MySQL 8.0
server distribuito con RHEL 8 è configurato per l'utilizzo mysql_native_password
come plug-in di autenticazione predefinito perché gli strumenti client e le librerie in RHEL 8 sono incompatibili con il caching_sha2_password
metodo, che viene utilizzato di default nella versione upstreamMySQL 8.0
.
Per modificare il plug-in di autenticazione predefinito in caching_sha2_password
, modificare il /etc/my.cnf.d/mysql-default-authentication-plugin.cnf
file come segue:
[mysqld] default_authentication_plugin=caching_sha2_password
(BZ#1649891, BZ#1519450, BZ#1631400)
Notevoli cambiamenti in MariaDB 10.3
MariaDB 10.3
fornisce numerose novità rispetto alla versione 5.5 distribuita in RHEL 7. Alcuni dei cambiamenti più importanti sono:
-
MariaDB Galera Cluster
, un cluster sincrono multi-master, è ora una parte standard diMariaDB
. -
InnoDB
è usato come motore di archiviazione predefinito invece diXtraDB
. - Espressioni comuni delle tabelle
- Tavoli con versione di sistema
-
FOR
circuiti - Colonne invisibili
- Sequenze
-
Istantanea
ADD COLUMN
perInnoDB
- Compressione della colonna indipendente dal motore di stoccaggio
- Replicazione parallela
- Replicazione multi-fonte
Inoltre, i nuovi mariadb-connector-c
pacchetti forniscono una comune libreria client per MySQL
e MariaDB
. Questa libreria è utilizzabile con qualsiasi versione del server MySQL
e del MariaDB
database. Come risultato, l'utente è in grado di collegare una build di un'applicazione a uno qualsiasi dei MySQL
MariaDB
server distribuiti con RHEL 8.
Vedi anche Using MariaDB on Red Hat Enterprise Linux 8.
(BZ#1637034, BZ#1519450)