4.7. Динамические языки программирования, веб-серверы и серверы баз данных (машинный перевод)

Python 3 по умолчанию Python реализация в RHEL 8

Red Hat Enterprise Linux 8 распространяется с Python 3.6 Пакет не установлен по умолчанию. Установить Python 3.6, использовать yum install python3 команда.

Python 2.7 доступно в python2 пакет. Тем не мение, Python 2 будет иметь более короткий жизненный цикл, и его целью является содействие более плавному переходу к Python 3 для клиентов.

Ни по умолчанию python пакет, ни неверсированный /usr/bin/python исполняемый файл распространяется с RHEL 8. Клиентам рекомендуется использовать python3 или же python2 непосредственно. Кроме того, администраторы могут настроить неверсированные python Команда с использованием alternatives команда.

Подробнее см. Using Python in Red Hat Enterprise Linux 8

(BZ#1580387)

Скрипты Python должны указывать основную версию в hashbangs во время сборки RPM

Ожидается, что в RHEL 8 исполняемые скрипты Python будут использовать хэш-банги (шебанги), явно указывающие по крайней мере основную версию Python.

/usr/lib/rpm/redhat/brp-mangle-shebangs Сценарий политики buildroot (BRP) запускается автоматически при сборке любого пакета RPM. Этот скрипт пытается исправить хэш-банг во всех исполняемых файлах. Когда скрипт встречает неоднозначные хэш-банги, которые не могут быть разрешены в основной версии Python, он генерирует ошибки. Примеры таких неоднозначных hashbangs включают в себя:

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

Чтобы изменить hashbangs в скриптах Python, вызывающих эти ошибки сборки во время сборки RPM, используйте pathfix.py сценарий из Платформа-питон-разви пакет:

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

множественный ДОРОЖКАможно указать. Если ДОРОЖКА это каталог, pathfix.py рекурсивно сканирует любые скрипты Python, соответствующие шаблону ^[a-zA-Z0-9_]+\.py$, не только с неоднозначным хэшбэнгом. Добавьте эту команду к %prep раздел или в конце %install раздел.

Для получения дополнительной информации см. Handling hashbangs in Python scripts

(BZ#1583620)

Заметные изменения в PHP

Red Hat Enterprise Linux 8 распространяется с PHP 7.2 Эта версия вводит следующие основные изменения PHP 5.4, который доступен в RHEL 7:

  • PHP по умолчанию использует FastCGI Process Manager (FPM) (безопасно для использования с многопоточным httpd)
  • php_value а также php-flag переменные больше не должны использоваться в httpd конфигурационные файлы; вместо этого они должны быть установлены в конфигурации пула: /etc/php-fpm.d/*.conf
  • PHP ошибки скрипта и предупреждения записываются в /var/log/php-fpm/www-error.log файл вместо /var/log/httpd/error.log
  • При смене PHP max_execution_time переменная конфигурации, httpd ProxyTimeout настройка должна быть увеличена, чтобы соответствовать
  • Пользователь работает PHP сценарии теперь настроены в конфигурации пула FPM ( /etc/php-fpm/d/www.conf файл; apache пользователь по умолчанию)
  • php-fpm служба должна быть перезапущена после изменения конфигурации или после установки нового расширения

Следующие расширения были удалены:

  • aspell
  • mysql (обратите внимание, что mysqli а также pdo_mysql расширения все еще доступны, предоставленные php-mysqlnd пакет)
  • zip
  • memcache

(BZ#1580430, BZ#1691688)

Заметные изменения в Ruby

RHEL 8 обеспечивает Ruby 2.5, который вводит многочисленные новые функции и улучшения по сравнению с Ruby 2.0.0 доступно в RHEL 7. Заметные изменения включают в себя:

  • Добавлен инкрементный сборщик мусора.
  • Refinements Синтаксис был добавлен.
  • Символы теперь мусор.
  • $SAFE=2 а также $SAFE=3 безопасные уровни теперь устарели.
  • Fixnum а также Bignum классы были объединены в Integer учебный класс.
  • Производительность была улучшена путем оптимизации Hash класс, улучшенный доступ к переменным экземпляра и Mutex класс меньше и быстрее.
  • Некоторые старые API устарели.
  • Связанные библиотеки, такие как RubyGems, Rake, RDoc, Psych, Minitest, а также test-unit, были обновлены.
  • Другие библиотеки, такие как mathn, DL, ext/tk, а также XMLRPC, которые были ранее распространены с Ruby, устарели или больше не включены.
  • SemVer схема управления версиями теперь используется для Ruby управления версиями.

(BZ#1648843)

Заметные изменения в Perl

Perl 5.26, распространяемый с RHEL 8, вносит следующие изменения в версию, доступную в RHEL 7:

  • Unicode 9.0 сейчас поддерживается.
  • новый op-entry, loading-file, а также loaded-file SystemTap зонды предоставляются.
  • Механизм копирования при записи используется при назначении скаляров для повышения производительности.
  • IO::Socket::IP добавлен модуль для прозрачной обработки сокетов IPv4 и IPv6.
  • Config::Perl::V модуль для доступа perl -V данные в структурированном виде были добавлены.
  • Новый perl-App-cpanminus пакет был добавлен, который содержит cpanm утилита для получения, распаковки, сборки и установки модулей из хранилища всеобъемлющей архивной сети Perl (CPAN).
  • Текущий каталог . был удален из @INC Путь поиска модуля по соображениям безопасности.
  • do Теперь оператор возвращает предупреждение об устаревании, если не удается загрузить файл из-за изменения поведения, описанного выше.
  • do subroutine(LIST) Вызов больше не поддерживается и приводит к синтаксической ошибке.
  • Хэши теперь рандомизированы по умолчанию. Порядок, в котором ключи и значения возвращаются из хэша, изменяется на каждом perl запустить. Чтобы отключить рандомизацию, установите PERL_PERTURB_KEYS переменная окружения 0
  • Unescaped буквальный { символы в шаблонах регулярных выражений больше не допустимы.
  • Поддержка лексической области $_ переменная была удалена.
  • С использованием defined Оператор в массиве или хэш приводит к фатальной ошибке.
  • Импорт функций из UNIVERSAL модуль приводит к фатальной ошибке.
  • find2perl, s2p, a2p, c2ph, а также pstruct инструменты были удалены.
  • ${^ENCODING} объект был удален. encoding Режим прагмы по умолчанию больше не поддерживается. Написать исходный код в другой кодировке, чем UTF-8, используйте кодировку Filter вариант.
  • perl упаковка теперь выровнена по потоку. perl Пакет устанавливает также основные модули, в то время как /usr/bin/perl переводчик предоставляется perl-interpreter пакет. В предыдущих выпусках perl пакет включал только минимальный переводчик, тогда как perl-core В комплект поставки входят как переводчик, так и основные модули.

(BZ#1511131)

Node.js новый в RHEL 8

Node.jsПлатформа разработки программного обеспечения для создания быстрых и масштабируемых сетевых приложений на языке программирования JavaScript впервые представлена в RHEL. Ранее он был доступен только как коллекция программного обеспечения. RHEL 8 обеспечивает Node.js 10

(BZ#1622118)

Заметные изменения в SWIG

RHEL 8 включает в себя версию 3.0 упрощенного упаковщика и интерфейса (SWIG), которая предоставляет множество новых функций, улучшений и исправлений ошибок по сравнению с версией 2.0, распространяемой в RHEL 7. В частности, поддержка стандарта C ++ 11 была реализована. SWIG теперь поддерживает также Go 1.6, PHP 7. Octave 4.2 и Python 3.5.

(BZ#1660051)

Заметные изменения в Apache httpd

RHEL 8 распространяется с сервером Apache HTTP 2.4.37. Эта версия вносит следующие изменения в httpd доступно в RHEL 7:

  • Поддержка HTTP / 2 теперь предоставляется mod_http2 пакет, который является частью httpd модуль.
  • Автоматическое предоставление и обновление сертификатов TLS с использованием протокола Автоматической среды управления сертификатами (ACME) теперь поддерживается с mod_md пакет (для использования с поставщиками сертификатов, такими как Let’s Encrypt)
  • HTTP-сервер Apache теперь поддерживает загрузку сертификатов TLS и закрытых ключей с аппаратных токенов безопасности непосредственно из PKCS#11 модули. В результате mod_ssl Конфигурация теперь может использовать PKCS#11 URL-адреса для идентификации закрытого ключа TLS и, необязательно, сертификата TLS в SSLCertificateKeyFile а также SSLCertificateFile директивы.
  • Модуль многопроцессорной обработки (MPM), сконфигурированный по умолчанию с HTTP-сервером Apache, изменился по сравнению с многопроцессорной раздвоенной моделью (известной как prefork) высокопроизводительной многопоточной модели, event Любые сторонние модули, которые не являются поточно-ориентированными, необходимо заменить или удалить. Чтобы изменить настроенный MPM, отредактируйте /etc/httpd/conf.modules.d/00-mpm.conf файл. Увидеть httpd.conf(5) Страница man для получения дополнительной информации.

Для получения дополнительной информации о httpd, увидеть Setting up the Apache HTTP web server

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

nginx веб-сервер новый в RHEL 8

RHEL 8 вводит nginx 1.14, веб- и прокси-сервер, поддерживающий HTTP и другие протоколы, с акцентом на высокий параллелизм, производительность и низкое использование памяти. nginx Ранее был доступен только как коллекция программного обеспечения.

nginx веб-сервер теперь поддерживает загрузку приватных ключей TLS с аппаратных токенов безопасности непосредственно из PKCS#11 модули. В результате nginx Конфигурация может использовать PKCS#11 URL-адреса для идентификации закрытого ключа TLS в ssl_certificate_key директивы.

(BZ#1545526)

Серверы баз данных в RHEL 8

RHEL 8 предоставляет следующие серверы баз данных:

  • MySQL 8.0многопоточный многопоточный сервер баз данных SQL. Состоит из MySQL серверный демон, mysqld, и много клиентских программ.
  • MariaDB 10.3многопоточный многопоточный сервер баз данных SQL. Для всех практических целей, MariaDB двоично-совместим с MySQL
  • PostgreSQL 10 а также PostgreSQL 9.6, усовершенствованная система управления объектно-реляционными базами данных (СУБД).
  • Redis 5, расширенный магазин значения ключа. Его часто называют сервером структуры данных, поскольку ключи могут содержать строки, хэши, списки, наборы и отсортированные наборы. Redis предоставляется впервые в RHEL.

Обратите внимание, что NoSQL MongoDB сервер базы данных не включен в RHEL 8.0, поскольку он использует публичную лицензию на стороне сервера (SSPL).

(BZ#1647908)

Заметные изменения в MySQL 8.0

RHEL 8 распространяется с MySQL 8.0, который обеспечивает, например, следующие улучшения:

  • MySQL теперь включает словарь транзакционных данных, в котором хранится информация об объектах базы данных.
  • MySQL теперь поддерживает роли, которые являются коллекциями привилегий.
  • Набор символов по умолчанию был изменен с latin1 в utf8mb4
  • Добавлена поддержка общих табличных выражений, как нерекурсивных, так и рекурсивных.
  • MySQL теперь поддерживает оконные функции, которые выполняют вычисления для каждой строки из запроса, используя связанные строки.
  • InnoDB теперь поддерживает NOWAIT а также SKIP LOCKED варианты с блокировкой операторов чтения.
  • ГИС-функции были улучшены.
  • Функциональность JSON была улучшена.
  • Новый mariadb-connector-c пакеты предоставляют общую клиентскую библиотеку для MySQL а также MariaDB Эта библиотека может использоваться с любой версией MySQL а также MariaDB серверы баз данных. В результате пользователь может подключить одну сборку приложения к любому из MySQL а также MariaDB серверы распространяются с RHEL 8.

В дополнение MySQL 8.0 сервер, распространяемый с помощью RHEL 8, настроен на использование mysql_native_password как подключаемый модуль аутентификации по умолчанию, потому что клиентские инструменты и библиотеки в RHEL 8 несовместимы с caching_sha2_password метод, который используется по умолчанию в восходящем потоке MySQL 8.0 версия.

Чтобы изменить подключаемый модуль аутентификации по умолчанию на caching_sha2_password, отредактируйте /etc/my.cnf.d/mysql-default-authentication-plugin.cnf файл следующим образом:

[mysqld]
default_authentication_plugin=caching_sha2_password

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

Заметные изменения в MariaDB 10.3

MariaDB 10.3 предоставляет множество новых функций по сравнению с версией 5.5, распространяемой в RHEL 7. Некоторые из наиболее заметных изменений:

  • MariaDB Galera Cluster, синхронный мультимастерный кластер, теперь является стандартной частью MariaDB
  • InnoDB используется как механизм хранения по умолчанию вместо XtraDB
  • Общие табличные выражения
  • Системные версии таблиц
  • FOR петли
  • Невидимые колонны
  • Последовательности
  • Мгновенный ADD COLUMN за InnoDB
  • Компрессия колонны, не зависящая от системы хранения
  • Параллельная репликация
  • Репликация из нескольких источников

Кроме того, новый mariadb-connector-c пакеты предоставляют общую клиентскую библиотеку для MySQL а также MariaDB Эта библиотека может использоваться с любой версией MySQL а также MariaDB серверы баз данных. В результате пользователь может подключить одну сборку приложения к любому из MySQL а также MariaDB серверы распространяются с RHEL 8.

Смотрите также Using MariaDB on Red Hat Enterprise Linux 8

(BZ#1637034, BZ#1519450)