Что нового в Ubuntu 20.04 LTS?

Наконец-то я завершил эту статью, в которой расскажу, что нового мы получим, установив Ubuntu 20.04 LTS.
Это перевод оригинальной статьи.
Сразу предупрежу, что небольшую часть подробностей из оригинального текста я удалил. Поэтому подробности типа, какая возможность изменилась в малоизвестном для меня пакете isc-kea, и, где об этом прочитать, я опущу.
Среди прочих полезностей вы узнаете про обновление php 7.2 до версий 7.3 и 7.4.
Кодовое имя
Разработчики решили сделать кодовое имя Ubuntu 20.04 LTS — Focal Fossa.
Как и для всех более ранних версий, кодовое имя Ubuntu состоит из прилагательного и второго слова — названия животного.
«Focal Fossa» по-русски дословно значит «Центральный Фосса» или «Фокусный Фосса».
Словом Фосса называют хищное млекопитающее из семейства мадагаскарских виверр. По внешнему виду оно похоже на животных семейства кошачьих.
Посмотрите на картинку ниже! Фосса — это довольно милое существо с коготками.
Срок осуществления поддержки
Обновления в рамках технического обслуживания будут предоставляться в течение 5 лет до апреля 2025 года для Ubuntu Desktop, Ubuntu Server, Ubuntu Cloud и Ubuntu Core. Все остальные дистрибутивы будут поддерживаться в течение 3 лет. Дополнительная поддержка безопасности доступна с ESM (Extended Security Maintenance).
Обновления ядра Linux
Ubuntu 20.04 LTS (Focal Fossa) — это долгосрочный релиз на основе релизных серий Linux версии 5.4.
Заметные функции и улучшения в 5.4 включают в себя:
- Поддержку нового оборудования, включая процессоры Intel Comet Lake и исходные платформы Tiger Lake, графические процессоры AMD Navi 12 и 14, АПУ Arcturus и Renoir, а также функции Navi 12 + Arcturus power.
- Поддержку файловой системы exFAT, virtio-fs для совместного использования файловых систем с виртуализированными гостями и fs-verity для обнаружения изменений файлов.
- Встроенную поддержку WireGuard VPN.
- Включение блокировки в режиме целостности.
Другие заметные обновления ядра до версии 5.4 включают:
- Поддержку процессоров AMD Rome, Radeon RX Vega M и Navi GPU, платформ Intel Cannon Lake.
- Поддержку raspberry pi (Pi 2B, Pi 3B, Pi 3A+, Pi 3B+, CM3, CM3+, Pi 4B)
- Значительные улучшения энергосбережения.
- Многочисленные улучшения USB 3.2 и Type-C.
- Новый API монтирования, интерфейс io_uring, поддержка KVM для AMD Secure Encrypted Virtualization и поддержка pidfd.
- Повышение скорости загрузки путем изменения алгоритма сжатия ядра по умолчанию на lz4 (в Ubuntu 19.10) на большинстве архитектур и изменения алгоритма сжатия initramfs по умолчанию на lz4 на всех архитектурах.
Обновление набора инструментов
Ubuntu 20.04 LTS поставляется с обновленным современным набором инструментов, включая новые upstream-релизы glibc 2.31, Open OpenJDK 11, rustc 1.41, GCC 9.3, Python Python 3.8.2, ruby 2.7.0, php 7.4, perl 5.30, golang 1.13.
Рабочий Стол Ubuntu
- Новая графика загрузочной заставки (интегрируется с логотипом системы BIOS).
- Обновленная тема Yaru. Светлая/темная цветовая схема темы.
- GNOME 3.36.
- Новый дизайн экрана блокировки.
- Новый дизайн системного меню.
- Новый дизайн папки приложения.
- Более плавная производительность, более низкая загрузка процессора для анимации окон и обзора, выполнение JavaScript, движение мыши и движение окна (которое также имеет более низкую задержку в настоящее время).
- 10-битная глубина поддержки цвета.
- X11 дробное масштабирование.
- Mesa 20.0 OpenGL stack.
- BlueZ 5.53.
- PulseAudio 14.0 (предрелиз).
- Firefox 75.0.
- Thunderbird 68.7.0.
- LibreOffice 6.4.
Конфигурация сети
С этим выпуском Ubuntu в netplan.io появилось несколько новых функций. Вот некоторые из них:
- Базовая поддержка настройки сетевых устройств SR-IOV.
- Поддержка GSM модемов через серверную часть NetworkManager через раздел modems.
- Добавление флагов WiFi для настроек bssid/band/channel.
- Добавление возможности установить ipv6-address-generation для бэкенда NetworkManager и emit-lldp для networkd.
Хранение/Файловые Системы
ZFS 0.8.3
Продолжает присутствовать с выпуска Ubuntu Eoan. Сейчас Ubuntu Focal содержит zfs 0.8.3. По сравнению с тем, что было доступно в предыдущем выпуске LTS, zfs 0.8 имеет много новых функций. Основные включают в себя:
- Собственное шифрование (с аппаратным ускорением, включенным в Focal).
- Удаление устройства.
- Улучшение pool’а.
- Улучшение производительности.
Другие изменения базовой системы,
начиная с 18.04 LTS
Python3 по умолчанию
В 20.04 LTS в базовую систему включен Python 3.8.
Python 2.7 был удален и по умолчанию не включен ни в одну новую установку.
Оставшиеся пакеты в Ubuntu, которым требуется Python 2.7 были обновлены и используют /usr/bin/python2 в качестве своего интерпретатора.
И /usr/bin/python по умолчанию не присутствует ни на каких новых установках.
В системах, обновленных с предыдущих выпусков, /usr/bin/python будет продолжать указывать на python2 для совместимости.
Пользователям систем, которым требуется /usr/bin/python для совместимости рекомендуется установить пакет python-is-python3, так как вместо него /usr/bin/python указывает на python3.
Snap Store
Snap Store (snap-store) заменяет ubuntu-software в качестве инструмента по умолчанию для поиска и установки пакетов и зависимостей.
Ubuntu Server
Установщик
Установщик live server installer теперь является предпочтительным носителем для установки Ubuntu Server на всех архитектурах.
Помимо архитектурной поддержки, основными важными для пользователей новыми функциями являются поддержка автоматических установок и возможность установки загрузчика на несколько дисков (для большей устойчивости системы).
Под капотом есть еще много других исправлений, которые делают проще шифрование, нужны для лучшей поддержки установки на multipath диски, более надежную установку на диски, которые используются различными способами и лучшей информативности сообщений о сбоях.
QEMU
QEMU был обновлен до версии 4.2. Тут столько всего, что сложно выделить отдельные улучшения. Их всего несколько:
- Hinting свободных страниц, что может ускорить миграцию
- Улучшения PPC: NVIDIA V100 GPU/nvlink2 с использованием VFIO PCI
- Многие улучшения скорости для бэкенда LUKS
- Поддержка pmem/nvdimm
При обновлении всегда рекомендуется обновлять типы машин, что позволит гостям в полной мере воспользоваться всеми улучшениями и исправлениями самой последней версии.
Графический бэкэнд QEMU теперь основан на GTK вместо SDL. Это обеспечивает гораздо лучшую интеграцию рабочего стола. И часто быстрее.
libvirt
libvirt была обновлена до версии 6.0.
dpdk
Ubuntu 20.04 LTS включает в себя последнюю стабильную версию 19.11.1 последней серии LTS 19.11.x.
Open vSwitch
Open vSwitch был обновлен до версии 2.13.
Пожалуйста, прочитайте примечания к выпуску 2.13 для получения более подробной информации.
Chrony
Chrony был обновлен до версии 3.5, которая обеспечивает множество улучшений в точности и управлении.
Для простой синхронизации времени нужна базовая система, которая уже поставляется с systemd-timesyncd. Chrony необходим только для того, чтобы выступать в качестве сервера времени или если вы хотите разрекламированную более точную и эффективную синхронизацию.
Cloud-init
Cloud-init был обновлен до версии 20.1-10.
PHP 7.4
PHP 7.4 — это новое обновление функций, включающее в себя типизированные свойства, стрелочные функции (array functions), слабые зависимости (weak references) и, среди прочего, распаковку внутри массивов. Дополнительную информацию о новых функциях и улучшениях смотрите в объявлении о выпуске PHP 7.4.
Дополнительные сведения об устаревших функциях и предлагаемых заменах см. на странице — «PHP 7.4. Устаревшие возможности».
Руководства по миграции на 7.4 с 7.3 или более ранних версий PHP также доступны в руководстве PHP Manual.
Пользователи, обновившиеся с Ubuntu 18.04, будут переходить с 7.2 на 7.4, поэтому следует также обратиться к руководствам по миграции до 7.3 с 7.2.
Ruby 2.7
Интерпретатор Ruby по умолчанию был обновлен до версии 2.7. Он поставляется с некоторыми хорошими функциями и улучшениями, такими как: сопоставление шаблонов, улучшение REPL, сжатие GC, разделение позиционных и ключевых аргументов и многое другое. Чтобы иметь широкий выбор интересных функций и улучшений, проверьте объявление о выпуске Ruby 2.7.
Пользователи, обновляющиеся с предыдущих выпусков Ubuntu (с 18.04), будут переходить с Ruby 2.5 на 2.7, В этом случае объявление о выпуске Ruby 2.6 также может быть полезно. Важно иметь в виду, что некоторые библиотеки больше не поставляются в комплекте с Ruby. Если вы нуждаетесь в них, пожалуйста, установите их отдельно:
- CMath
- Scanf
- Shell
- Synchronizer (ruby-sync)
- ThreadsWait (ruby-thwait)
- E2MM (ruby-e2mmap)
Для получения дополнительной информации ознакомьтесь с этим сообщением в блоге.
Ruby on Rails 5.2.3
Ruby on Rails был обновлен до версии 5.2.3. Для пользователей, обновляющихся с Ubuntu 18.04, переход от версии 4.2.10 к версии 5.2.3 — серьезное изменение. Некоторые основные моменты:
- Дополнения в Action Cable framework.
- Опция для создания более компактных API-приложений.
- Атрибуты API Active Record.
Ознакомьтесь с примечаниями к выпуску Ruby on Rails 5 и 5.2.
Если вам нужно обновить приложение Ruby on Rails, пожалуйста, взгляните на руководство по апгрейду.
Ubuntu HA / кластеризация
Kronosnet
kronosnet (или knet для краткости) — это новый протокол для компонент Linux HA (corosync), который имеет возможность использовать множественные связи между узлами, имеет отказоустойчивую политику ссылок, автоматическое восстановление ссылки, FIPS-совместимое шифрования (НСС и/или OpenSSL), автоматический PMTUd, и, в целом, более высокую производительность по сравнению со старым сетевым протоколом.
Corosync
Corosync 3.0 содержит много интересных функций, в основном связанных с использованием Kronosnet ( https://kronosnet.org/) в качестве стандартного (и предпочтительного) сетевого транспорта.
Pacemaker
Из заметки о выпуске Pacemaker 2.0:
Основная цель выпуска 2.0 состояла в том, чтобы удалить поддержку устаревшего синтаксиса, а также некоторые небольшие изменения в поведении конфигурации по умолчанию и поведении инструмента. Основные характеристики: в качестве базового слоя кластера теперь поддерживается только Corosync версии 2 и выше.
RESOURCE AGENTS (Агенты Ресурсов)
Агенты кластерных ресурсов (RAs), совместимые со спецификацией Open Cluster Framework (OCF), используются для взаимодействия с различными службами в среде высокой доступности, управляемой диспетчером ресурсов Pacemaker.
FENCE AGENTS (Агенты Ограждений)
Агенты Ограждений — это набор сценариев для обработки удаленного управления питанием для нескольких устройств. Они позволяют принудительно перезапускать и удалять из кластера отказавшие или недоступные узлы.
keepalived
Демон аварийного переключения и мониторинга для кластеров LVS, используемый для мониторинга реальных серверов в кластере виртуальных серверов Linux (LVS). Он может быть настроен для удаления реальных серверов из пула кластеров, если они перестают отвечать на запросы, а также отправить уведомление по электронной почте, чтобы администратор знал об ошибке службы.
isc-kea 1.6
Несмотря на то, что это пакет Universe, isc-kea является многообещающим новым DHCP-сервером из того же upstream, в котором были созданы Bind и isc-dhcp. Для Focal пакет был обновлен до стабильной серии 1.6.X.
Bind 9.16
Bind был обновлен до новой стабильной серии релизов upstream: 9.16.X.
Сообщение в блоге Upstream об основных изменениях в bind9 9.16.0: https://www.isc.org/blogs/bind9.16.0_released/
Более детальные примечания к выпуску: https://downloads.isc.org/isc/bind9/9.16.0/RELEASE-NOTES-bind-9.16.0.html
Презентация о разработке bind9 завершается в этом новом релизе: https://youtu.be/5math9Oy97s?t=46
Обновления OpenSSH с поддержкой U2F
OpenSSH 8.2 добавлена поддержка аппаратных устройств U2F/FIDO для обеспечения простой аппаратной двухфакторной аутентификации.
Upstream разработчики OpenSSH 8.2 в Debian добавили поддержку ключевого слова ‘Includes’ в конфигурационных файлах. Это позволяет включать дополнительные файлы конфигурации через шаблоны glob (3).
По умолчанию системный файл конфигурации sshd (/etc/ssh/sshd_config) теперь включает файлы под /etc/ssh/sshd_config.d/*.conf.
Для каждого ключевого слова, обнаруженного в файлах конфигурации, будет использоваться первое полученное значение.
Эффективность конфигурации sshd может быть проверена путем запуска ‘sudo sshd-T’. Эта команда считывает и проверяет файл(ы) конфигурации и печатает эффективную конфигурацию перед выходом.
Смотрите вышестоящие заметки о выпуске для получения дополнительной информации: https://www.openssh.com/txt/release-8.2
HAProxy 2.0
Впервые введенный в Ubuntu Eoan 19.10, HAProxy присутствует и в Focal. Эта серия имеет много новых функций по сравнению с предыдущей 1.8 стабильной веткой, и все они подробно описаны в этом блоге: https://www.haproxy.com/blog/haproxy-2-0-and-beyond/
Apache, TLSv1. 3, Client cert auth
Apache был построен с поддержкой TLSv1.3, и в зависимости от конфигурации сервера, это может потребовать от клиентов выполнения проверки подлинности сертификата для поддержки проверки подлинности Post Handshake (PHA). Не все клиенты с поддержкой TLSv1.3 могут выполнить PHA и потерпят неудачу. Злостные признаки этой ошибки включают такие сообщения в журналах сервера Apache:
1 2 3 | AH: verify client post handshake AH10158: cannot perform post-handshake authentication SSL Library Error: error:14268117:SSL routines:SSL_verify_client_post_handshake:extension not received |
В этом случае, если у клиента нет обновленной версии, вам лучше отключить TLSv1.3 на затронутом клиенте.
Ошибка Chorme: https://bugs.chromium.org/p/chromium/issues/detail?id=911653
Ошибка Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1511989 (исправлено, может быть включено путем переключения security.tls.enable_post_handshake_auth)
python httplib должен включить проверку подлинности post-handshake для TLS 1.3: https://bugs.python.org/issue37440
Samba 4.11
Focal предоставляет для установки Samba 4.11.x, в который внесен ряд изменений. Что имеем:
- SMB1 отключен по умолчанию: его все еще можно включить через изменение конфигурации /etc/samba/smb.conf;
- python2 больше не поддерживается
Подробные замечания о upstream-релизе версии 4.11.0 можно посмотреть здесь: https://www.samba.org/samba/history/samba-4.11.0.html
PostgreSQL 12
Focal предоставляет для установки postgresql-12, который имеет много улучшений:
- Улучшена производительность запросов, особенно в больших наборах данных.
- Поддержка выражений пути SQL/JSON (path expression).
- Генерируемые столбцы.
- Подключаемый интерфейс table storage.
Объявление о выпуске: https://www.postgresql.org/about/news/1976/
Примечания к выпуску: https://www.postgresql.org/docs/12/release-12.html
nginx
Начиная с Focal Fossa, nginx-core больше не поставляется с устаревшим модулем geoip, включенным по умолчанию. Если вы используете устаревший модуль geoip в nginx, вы можете столкнуться с проблемами обновления, если вы не деактивируете модуль geoip в своей конфигурации. Это было сделано в рамках отмены устаревшей поддержки GeoIP.
Вот некоторые сценарии, с которыми вы можете столкнуться:
- Поскольку nginx-core отбросил зависимость от libnginx-mod-http-geoip, «apt autoremove» может предполагать, что libnginx-mod-http-geoip можно удалить. Если это произойдет, и все еще существуют директивы конфигурации geoip, nginx не сможет перезапуститься. Обратите внимание, что это также произошло бы, если бы мы заменили libnginx-mod-http-geoip на libnginx-mod-http-geoip2, так как директивы конфигурации отличаются.
- Если вы у вас стоит nginx с установленными nginx-code и libnginx-mod-http-geoip и делаете обновление до focal, libnginx-mod-http-geoip не будет обновлен, потому что он находится в focal/universe.
Squid 4.x
При обновлении с предыдущей LTS Ubuntu Bionic 18.04 прокси-кэш squid будет иметь версию 4. Среди других изменений, если вы использовали пользовательский формат ведения журнала, имейте в виду, что переопределение встроенных форматов больше не работает (upstream ошибка: https://bugs.squid-cache.org/show_bug.cgi?id=4905).
Например, если вы переопределяли формат журнала squid, чтобы изменить метку времени, как тут:
1 | logformat squid %tg{%F %H:%M:%S %z} %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt |
Теперь вам нужно использовать другое имя и указать, что оно должно использоваться, например:
1 2 | logformat custom-squid %tg{%F %H:%M:%S %z} %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt access_log daemon:/var/log/squid/access.log custom-squid |
OpenStack Ussuri
Ubuntu 20.04 LTS включает в себя последнюю версию OpenStack release, Ussuri, как preview с окончательным релизом в 20.04.1 LTS. Пакет включает следующие компоненты:
- OpenStack Identity — Keystone
- OpenStack Imaging — Glance
- OpenStack Block Storage — Cinder
- OpenStack Compute — Nova
- OpenStack Networking — Neutron
- OpenStack Telemetry — Ceilometer, Aodh, Gnocchi, and Panko
- OpenStack Orchestration — Heat
- OpenStack Dashboard — Horizon
- OpenStack Object Storage — Swift
- OpenStack DNS — Designate
- OpenStack Bare-metal — Ironic
- OpenStack Filesystem — Manila
- OpenStack Key Manager — Barbican
- OpenStack Load Balancer — Octavia
- OpenStack Instance HA — Masakari
Пожалуйста, обратитесь к примечаниям OpenStack Ussuri Release notes для получения полной информации об этом выпуске OpenStack.
Ceph
Ceph был обновлен до выпуска 15.2.1, Ceph Octopus. Пожалуйста, обратитесь к заметкам о выпуске Ceph Octopus для получения полной информации об этом выпуске.
Облачные образы
Amazon Web Services (AWS)
В Amazon Machine Images (AMIs) установлен и включен по умолчанию пакет ec2-instance-connect, который запускается в Focal. Функция подключения к установкам AWS использует политики и принципы AWS Identity and Access Management (IAM) для управления доступом SSH к вашим установкам.
Google Compute Engine
Существующие переопределения конфигурации sshd, записанные в файл /etc/ssh/sshd_config, были перемещены в файл /etc/ssh/sshd_config.d/50-cloudimg-settings.conf.
Microsoft Azure
Экземпляры Azure теперь используют chrony для управления синхронизацией времени, и по умолчанию они настроены на использование высокоточных устройств Stratum 1, размещенных в облаке Azure. Дополнительные сведения см. в статье синхронизация времени для виртуальных машин Linux в Azure.
Существующие переопределения конфигурации sshd, записанные в файл /etc/ssh/sshd_config, были перемещены в файл/etc/ssh/sshd_config.d/50-cloudimg-настройки.conf.
Raspberry Pi
С момента выпуска Ubuntu 19.10 Raspberry Pi 32-разрядные и 64-разрядные предустановленные образы (переименованные в raspi) поддерживают платформу Raspberry Pi 4 из коробки. Благодаря этому наши образы теперь поддерживают почти все современные семейства устройств Raspberry Pi (Pi 2B, Pi 3B, Pi 3A+, Pi 3B+, CM3, CM3+, Pi 4B).
В заключение
Если данная статья была вам полезна, поставьте оценку ниже и обязательно напишите свой комментарий. Это даст мне силы с большим энтузиазмом писать вам что-нибудь новое и интересное. Ну все, до скорого! 😉
Добрый день!
Блог php-разработчика на WordPress — почему так скромно? Пишите своё имя большими буквами и фото )))
Я — скромный мужчина)