Глава 5. Что нужно знать о jessie

Глава 5. Что нужно знать о jessie

Иногда изменения, внесённые в новый выпуск, приводят к побочным эффектам, которых нельзя избежать без появления ошибок где-то ещё. Этот раздел описывает проблемы, которые уже известны нам. Прочитайте также список известных ошибок, соответствующую документацию на пакеты, отчёты об ошибках и другую информацию, указанную в Раздел 6.1, «Что ещё можно прочитать».

5.1. Ограничения поддержки безопасности

Для некоторых пакетов Debian не может гарантировать какой-либо минимальной поддержки исправлений безопасности. О таких пакетах написано в следующих разделах.

Заметьте, что пакет debian-security-support , добавленный в Jessie, помогает отслеживать статус поддержки исправлений безопасности для установленных пакетов.

5.1.1. Состояние безопасности веб-браузеров

В Debian 8 включено несколько браузерных движков (browser engines), в которых постоянно находят большое количество уязвимостей. Из-за этого и частичного отсутствия авторской поддержки предыдущих версий возникают большие сложности с переносом исправлений безопасности в старые версии. Также из-за библиотечных зависимостей невозможно произвести обновление до новых версий. В силу этого, браузеры, созданные на основе механизмов webkit, qtwebkit и khtml, включены в Jessie, но не обладают полной поддержкой безопасности. Данные браузеры лучше не использовать для просмотра ненадёжных сайтов.

Для повседневной работы рекомендуется использовать браузеры Iceweasel или Chromium.

Chromium, хотя он основан на кодовой базе Webkit, является производным пакетом, который будет поддерживаться в актуальном состоянии путём сборки текущих выпусков Chromium для стабильного выпуска. Iceweasel и Icedove также будут поддерживаться в актуальном состоянии путём сборки текущих выпусков версии ESR для стабильного выпуска.

5.1.2. Отсутствие поддержки безопасности экосистемы libv8 и Node.js

Node.js представляет собой платформу, собранную на основе libv8-3.14 , в этом пакете часто обнаруживаются проблемы безопасности, но в настоящее время ни добровольцы, ни команда безопасности не достаточно заинтересованы и не хотят тратить большое количество времени, требуемого для решения этих проблем.

К сожалению, это означает, что пакеты libv8-3.14 , nodejs , а также другие пакеты node-* указанной экосистемы не должны использоваться с недоверенным содержимым, таким как непроверенные данные из сети Интернет.

Кроме того, эти пакеты не будут получать обновлений безопасности в течении жизненного цикла Jessie.

5.1.3. Раннее окончание поддержки безопасности MediaWiki

Поддержка безопасности в основной ветке разработки версии 1.19 пакета mediawiki будет прекращена в течении ожидаемого жизненного цикла Jessie. Пакет mediawiki входит в Jessie для удовлетворения зависимостей других пакетов.

Поддержка безопасности пакета mediawiki будет прекращена вместе с прекращением поддержки Wheezy в апреле 2016 год.

5.2. По умолчанию сервер OpenSSH настроен с параметром "PermitRootLogin without-password"

Для улучшения безопасности настроек по умолчанию файл настроек пакета openssh-server содержит параметр "PermitRootLogin without-password". Если вы используете аутентификацию пользователя root по паролю, то это изменение вас коснётся.

Пакет openssh-server при обновлении попытается обнаружить подобные случаи и увеличит приоритет приглашения debconf.

Если вы хотите оставить аутентификацию по паролю для пользователя root , вы можете автоматически ответить на соответствующий вопрос обновления, используя следующую команду:

5.3. Совместимость Puppet 2.7 / 3.7

Если вы используете Puppet, вам следует помнить, что в Puppet 3.7 отсутствует обратная совместимость с Puppet 2.7. Среди прочих вещей были изменены и правила области действия, также были удалены многие устаревшие конструкты. Информацию о некоторых изменения можно получить в информации о выпуске Puppet 3.x, но следует помнить и о том, что в версии 3.7 имеются дополнительные изменения, не указанные в этом документе.

Проверка файлов журнала вашего текущего puppetmaster на предмент наличия в них предупреждений об использовании устаревших возможностей и разрешение всех таких предупреждений до выполнения обновления значительно облегчит процесс обновления. Также вы можете дополнительно протестировать файлы настроек с каким-нибудь инструментом типа Puppet catalog test, что также позволит обнаружить потенциальные проблемы до выполнения обновления.

При обновлении системы управления Puppet с Wheezy до Jessie, вы должны убедиться, что соответствующий puppetmaster запускает Puppet версии 3.7. Если мастер запускает puppetmaster из Wheezy, то к управляемой системе Jessie невозможно будет подключиться.

Дополнительную информацию о несовместимых изменениях можно найти в проблемах обновления, а также в "Гневном руководстве по Puppet 3".

5.4. Обновление PHP 5.6 изменило поведение

Обновление до Jessie включает в себя обновление PHP с версии 5.4 до версии 5.6. Это может задеть локальные сценарии PHP, рекомендуется проверить эти сценарии до выполнения обновления. Ниже приведён список некоторых изменения.

Для предотвращения атак по принципу человек-в-середине против зашифрованных соединений клиентские потоки данных теперь по умолчанию выполняют проверку сертификатов узлов.

В результате существующий код, использующий обёртки ssl:// или tls:// для потоков (напр., file_get_contents(), fsockopen(), stream_socket_client()) больше не могут успешно подключиться к узлу без отключения проверки узлов вручную с помощью опции контекстов потоков "verify_peer".

Дополнительную информацию об этой конкретной проблеме см. в этом документе.

В PHP произошли изменения в обработке нечувствительности к регистру:

Вся внутренняя нечувствительная к регистру обработка классов, функций и имён констант выполняется в соответствиями с правилами ASCII. Текущие настройки локали игнорируются.

Ключевые слова "self", "parent" и "static" теперь всегда чувствительны к регистру.

Функция json_decode() более не принимает варианты булевых значений в нижнем регистре.

logo-варианты функций GUID (напр., php_logo_guid()) были удалены.

Больше нельзя перезаписывать ключи в статичных скалярных массивах. Пример и дополнительную информацию об этой проблеме см. в PHP, ошибка 66015.

Функции mcrypt_encrypt(), mcrypt_decrypt() и mcrypt_() более не принимают ключи или IV некорректного размера. Более того, IV теперь требуется в том случае, если он нужен используемому блочному шифру.

По юридическим причинам реализация JSON, поставляемая в составе PHP, была заменена на версию, предоставляемую PECL-модулем "jsonc". Код, предполагающий от грамматического разбора JSON чего-то особенного, следует проверить по совместимость.

The "short_open_tag" setting is now disabled by default. The ASP variant of the short tags ("<%" and "%>") are scheduled for removal in PHP7.

Дополнительную информацию и полный список потенциальных проблем см. в списке изменений без обратной несовместимости для PHP 5.5 и 5.6.

5.5. Несовместимые изменения в Apache HTTPD 2.4

Данный раздел касается только тех систем, в которых установлен сервер Apache HTTPD, который настроен вручную.

В настройке сервера Apache HTTPD версии 2.4 произошло ряд изменений. Со стороны основной ветки разработки был изменён синтаксис файлов настройки. В особенности, директивы управления доступом были существенно изменены, требуется вручную перейти на использование новых директив.

Модуль mod_access_compat указан в руководстве по обновлению из основной ветки разработки как возможная альтернатива такого перехода. Тем не менее, сообщается, что такой способ не всегда может работать.

Управление файлами настройки в пакетах Debian также было изменено. В частности, все файлы настройки и сайты должны оканчиваться на ".conf", в этом случае по умолчанию будет произведён их грамматический разбор. Данное изменение заменяет /etc/apache2/conf.d/ .

Во время обновления вы можете увидеть предупреждения о файлах настроек, размещённых в /etc/apache2/conf.d/ , которые предоставляются пакетами из состава Debian. Данное предупреждение является неизбежным, но безвредным, поскольку такие пакеты переместят свои настройки по завершению обновления (что обычно происходит уже после того, как Apache HTTPD выводит данное предупреждение).

Дополнительную информацию и полный список изменений можно найти в следующих документах:

Документ обновление до 2.4 с 2.2, предоставляемый основной веткой разработки Apache.

Файл /usr/share/doc/apache2/NEWS.Debian.gz , предоставляемый пакетом apache2 .

5.6. Обновление приводит к установке новой системы инициализации по умолчанию для Jessie

Jessie поставляется с systemd-sysv в качестве системы инициализации по умолчанию . Этот пакет устанавливается автоматически при выполнении обновления.

Если вы предпочитаете другую систему инициализации, такую как sysvinit-core или upstart , рекомендуется установить закрепление (pinning) для APT до выполнения обновления. Также это может потребоваться в случае обновления LXC-контейнеров до обновления самого узла. В этом случае обратитесь к Раздел 5.8.1, «Обновление гостевых систем LXC, работающих на узлах Wheezy».

Например, чтобы запретить установку пакета systemd-sysv во время обновления, вы можете создать файл /etc/apt/preferences.d/local-pin-init со следующим содержимым:

Следует помнить, что некоторые пакеты могут работать хуже, либо могут не иметь некоторой функциональности при использовании системы инициализации, отличной от системы инициализации по умолчанию.

Заметьте, что обновление может привести к установке пакетов, содержащих "systemd" в названии пакета даже несмотря на закрепление APT. Сами по себе они не изменяют вашу систему инициализации. Чтобы использовать systemd в качестве системы инициализации, следует сначала установить пакет systemd-sysv .

Если APT или aptitude испытывают проблемы с вычислением пути обновления с использованием закрепления, вам может потребоваться вручную установить и sysvinit-core , и systemd-shim .

5.6.1. Более строгая обработка ошибок монтирования во время загрузки под systemd

Новая система инициализации по умолчанию, systemd-sysv , строже обрабатывает ошибки монтирования разделов в режиме "auto" во время загрузки по сравнению с sysvinit. Если не удаётся смонтировать раздел в режиме "auto" (без опции "nofail"), systemd перейдёт в консоль восстановления вместо того, чтобы продолжить загрузку.

Рекомендуется всем извлекаемым точкам монтирования или разделам с режимом "optional" (напр., некритичные сетевые диски), указанным в /etc/fstab добавить либо опцию "noauto", либо "nofail".

5.6.2. Устаревшие сценарии инициализации должны быть вычищены

Если вы выполняете обновление с предыдущего выпуска, то ваша система может содержать устаревшие сценарии, предоставленные (теперь) устаревшими пакетами. Эти сценарии могут содержать неточности в метаданных зависимостей, либо вообще не содержать таких метаданных, что может приводить к циклам зависимостей при настройке инициализации.

Чтобы избежать этого, рекомендуется проверить список пакетов в состоянии "rc" ("удалён, но файлы настроек остаются в системе") и вычистить по меньшей мере все их сценарии инициализации.

Подробную информацию о поиске и вычистке удалённых пакетов см. в Раздел 4.8.1, «Вычистка удалённых пакетов».

5.6.3. Изменённые локально сценарии инициализации требуется перенести на systemd

Данный раздел касается только тех систем, в которых предоставленные Debian сценарии инициализации были изменены локально.

Если у вас имеются предоставленные Debian, но изменённые вами сценарии инициализации, они могут быть заменены юнит-файлами systemd или самой systemd. Если у вас установлен debsums, вы можете проверить, были ли локально изменены какие-либо сценарии инициализации, используя следующую команду:

Либо же в случае отсутствия debsums можно использовать следующее.

Если либо командные флаги любых файлов и соответствующие им пакеты, либо пакет systemd предоставляет юнит-файл systemd для такой службы, юнит-файл systemd получит приоритет перед локально изменённым сценарием инициализации. В зависимости от природы внесённого изменения, имеются разные пути выполнения миграции.

Если это необходимо, можно переопределить юнит-файл systemd так, чтобы он запускал сценарий sysvinit. Дополнительную информацию о юнит-файлах systemd можно получить на приведённых ниже ресурсах.

Моя служба не может работать в реальном времени! (также содержит короткое описание вызова сценариев инициализации из юнит-файлов)

5.6.4. Для Plymouth при загрузке под systemd требуется boot-prompts

Если ваш процесс загрузки интерактивен (напр., требуется ввести пароль для зашифрованного диска), убедитесь, что у вас установлен и настроен пакет plymouth . За дополнительной информацией о том, как настроить plymouth обратитесь к файлу /usr/share/doc/plymouth/README.Debian .

Без пакета plymouth приглашение при загрузке может не появиться. Согласно сообщениям пользователей, приглашение cryptsetup всё ещё принимает ввод, но остаётся невидимым. Если у вас возникла эта проблема, ввод правильного пароля всё ещё может сработать.

5.6.5. Взаимодействие между logind и acpid

Событи ACPI могут обрабатываться logind или acpid. Настройка обеих служб на обработку событий разным способом может приводить к нежелательным результатам.

Рекомендуется перенести любые настройки, отличные от настроек по умолчанию, на logind и удалить acpid. С другой стороны, также можно настроить logind на игнорирование событий ACPI, добавив следующие строки:

в файл /etc/systemd/logind.conf . Заметьте, что это может изменить поведение окружений рабочего стола, которые работают с logind.

5.6.6. Неподдерживаемые возможности crypttab под systemd (напр., "keyscript=. ")

Некоторые возможности cryptsetup, к сожалению, не поддерживаются при использовании systemd в качестве системы инициализации. Не поддерживаются следующие возможности:

Если ваша система использует какую-то из этих возможностей для осуществления загрузки, вам придётся использовать sysvinit (пакет sysvinit-core ) в качестве системы инициализации. Обратитесь к Раздел 5.6, «Обновление приводит к установке новой системы инициализации по умолчанию для Jessie», чтобы получить информацию о том, как изменить систему инициализации.

Вы можете проверить использование этих опций в вашей системе, запустив следующую команду:

Если вы не увидите какого-либо вывода приведённой выше команды, то в вашей системе не используются опции, которые могут вызывать проблемы.

5.6.7. systemd: слишком рано производится отправка SIGKILL [исправлено в 8.1]

Эта проблема была исправлена в ревизии 8.1 выпуска Jessie.

О регрессе в systemd сообщили после выпуска jessie. Ошибка возникает во время выключения или перезагрузки, systemd не предоставляет достаточную задержку до отправления процессам сигнала SIGKILL. Это может приводить к потере данных тех процессов, которые не сохранили все данные в момент запуска перезагрузки (напр., работающие базы данных).

Эта проблема отслеживается в отчёте об ошибке Debian #784720.

5.6.8. systemd: поведение команды 'halt'

Реализация команды halt в sysvinit тоже выключает машину. Реализация systemd-sysv останавливает систему, но не выключает машину. Для остановки машины и её выключения, используйте команду poweroff .

5.7. Требуемые для Jessie опции настроек ядра

Данный раздел касается только тех, что желает скомпилировать собственное ядро. Если вы используете ядра, скомпилированные Debian, можете пропустить этот раздел.

Для Jessie требуются, либо рекомендуются следующие опции настройки ядра (в дополнение к тем, что относятся к предыдущим выпускам):

Службы systemd, которым требуется CONFIG_DEVPTS_MULTIPLE_INSTANCES=y, обычно содержат по меньшей мере одну из следующих директив:

Если вы не используете systemd, либо абсолютно уверены в том, что ни одна из служб systemd не будет использовать хотя бы одну из приведённых выше директив, то эта опция настройки ядра не требуется для вашей системы.

Дополнительную информацию о требованиях см. в разделе "REQUIREMENTS" файла README из пакета systemd .

5.8. Обновление узлов и контейнеров LXC

Данный раздел касается только тех систем, в которых имеются LXC-контейнеры, а также LXC узлов. Системы обычных конечных пользователей обычно не содержат подобного.

Обновление с Wheezy да Jessie по умолчанию изменит вашу систему инициализации на систему инициализации systemd (см. Раздел 5.6, «Обновление приводит к установке новой системы инициализации по умолчанию для Jessie»).

При обновлении LXC-контейнер или виртуальной машины LXC это приведёт к различным последствиям в зависимости от того, обновлена уже хостовая система до Jessie или нет.

5.8.1. Обновление гостевых систем LXC, работающих на узлах Wheezy

Если вы обновляете гостевой контейнер LXC, запущенный на хостовой системе Wheezy , то вам нужно будет запретить автоматический переход гостевой системы на systemd. Запретить переход можно с помощью закрепления (pinning) как это описано в Раздел 5.6, «Обновление приводит к установке новой системы инициализации по умолчанию для Jessie».

Это необходимо сделать потому, что в хостовой системе Wheezy отсутствует требуемая функциональность для загрузки системы под systemd.

Вы сможете переключиться на systemd в гостевой системе LXC после того, как обновите хостовую систему до Jessie. См. в следующем параграфе описание того, что следует сделать на хостовых системах Jessie.

5.8.2. Обновление гостевых систем LXC, работающих на узлах Jessie

Для того, чтобы загрузить гостевую система LXC с systemd, вам необходимо изменить настройки вашего LXC-контейнера. Настройки контейнера обычно находятся в файле /var/lib/lxc/ ИМЯ_КОНТЕЙНЕРА /config . Вам следует добавить следующие две опции в файл настройки:

5.8.3. Дополнительная информация

Дополнительную информацию о LXC в Debian см. на вики-страницах Debian.

5.9. Ручная миграция зашифрованных с помощью LUKS whirpool дисков (нестандартные настройки)

Данный раздел предназначен только для тех, кто самостоятельно настроил зашифрованные с помощью LUKS диски, используя хэш whirlpool. Программа установки Debian никогда не поддерживала создание таких дисков.

Если вы вручную настроили зашифрованный с помощью LUKS whirpool диск, то вам следует вручную выполнить переход на более стойкий хэш. Вы можете проверить, используется ли для шифрования вашего диска функция whirlpool, выполнив следующую команду:

Дополнительную информацию о миграции см. в разделе "8.3 Gcrypt 1.6.x and later break Whirlpool" в ЧаВО по cryptsetup.

Если в вашей системе имеется такой диск, пакет cryptsetup по умолчанию откажется его расшифровывать. Если ваша корневая файловая система или другие системные диски (напр., /usr) зашифрованы с помощью whirlpool, вам следует выполнить миграцию этих дисков до первой перезагрузки после обновления пакета cryptsetup .

5.10. Для рабочего стола GNOME требуется базовая поддержка 3D графики

Рабочий стол GNOME 3.14 в Jessie более не поддерживает fallback для машин без базовой поддержки трёхмерной графики. Для работы ему требуется либо достаточно новый ПК (любой ПК не старше 10 лет должен иметь требуемую поддержку SSE2), либо графический адаптер с поддержкой ускоренной трехмерной графики с драйверами EGL, если архитектура вашей система отличается от i386 или amd64.

5.11. Рабочий стол GNOME не работает с проприетарным драйвером FGLRX от AMD

В отличии от остальных драйверов OpenGL, драйвер FGLRX от AMD для адаптеров Radeon не поддерживает интерфейс EGL. Поэтому некоторые приложения GNOME, включая базовую часть рабочего стола GNOME, вообще не запустятся, если в системе используется этот драйвер.

Рекомендуется использовать свободный драйвер radeon , которые используется по умолчанию в jessie.

5.12. Изменения сочетаний клавиш по умолчанию в GNOME

Сочетания горячих клавиш по умолчанию в рабочем столе GNOME были изменены с тем, чтобы больше соответствовать сочетаниям клавиш в других операционных системах.

Сочетания клавиш, которые были изменены пользователем, при обновлении сохраняться. Их можно настроить в центре управления GNOME. Для того, чтобы попасть в него, следует кликнуть на иконке "settings" в верхнем правом меню.

5.13. Изменения командной оболочки по умолчанию для системных пользователей, предоставляемых пакетом base-passwd

Обновление пакета base-passwd приведёт к замене командной оболочки некоторых системных пользователей на командную оболочку "nologin". Изменение коснётся следующих пользователей:

📎📎📎📎📎📎📎📎📎📎