Содержание
libinput
dbgsym
net-tools
устарел и будет
заменён на пакет iproute2
_netdev
при
использовании AoE-устройств (ATA через локальную сеть)Иногда изменения, внесённые в новый выпуск, приводят к побочным эффектам, которых нельзя избежать без появления ошибок где-то ещё. Этот раздел описывает проблемы, которые уже известны нам. Прочитайте также список известных ошибок, соответствующую документацию на пакеты, отчёты об ошибках и другую информацию, указанную в Раздел 6.1, «Что ещё можно прочитать».
В данном разделе описываются шаги обновления с jessie до stretch
![]() | Примечание |
---|---|
Данный раздел касается систем, использующих ядро собственной сборки, на
которых каталог |
Монтирование каталога /usr
с использованием только
инструментов, расположенных в каталоге /
, более не
поддерживается. Ранее эта возможность работала только для небольшого
количества настроек, теперь она явным образом не поддерживается.
Это означает, что для stretch все системы, в которых каталог
/usr
расположен на отдельном разделе, следует
использовать генератор initramfs, который будет монтировать каталог
/usr
. Все генераторы initramfs в stretch
позволяют это делать.
Сопровождаемые Debian зеркала в скором времени не будут доступны через
FTP. Если вы используете протокол ftp:
в вашем файле
sources.list, то вам следует перейти на использование
http:
. В качестве примера такого перехода обратите
внимание на следующее:
deb http://deb.debian.org/debian stretch main deb http://deb.debian.org/debian-security stretch/updates main # tor-вариант (требуется пакет apt-transport-tor) # deb tor+http://vwakviie2ienjx6t.onion/debian stretch main # deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates main
Приведённые выше примеры не включают в себя разделы
non-free
и contrib
. Если вам требуются
компоненты из указанных разделов, то не забудьте добавить их в свой файл
настройки.
За дополнительной информацией обращайтесь к объявлению: Отключение публичных FTP-служб.
Ниже приводится список заслуживающих внимания устаревших пакетов (описание см. в Раздел 4.8, «Устаревшие пакеты»).
В список устаревших пакетов входят следующие пакеты:
Большинство пакетов -dbg
были удалены из основного
архива. Они были заменены на пакеты -dbgsym
, которые
теперь доступны из архива debian-debug
. Смотрите раздел
Раздел 2.2.8, «Новый архив для символов отладки».
Менеджеры паролей fpm2
и kedpm
более не сопровождаются разработчиками
основной ветки разработки. Перейдите на использование другого менеджера
паролей, например, pass
, keepassx
или keepass2
. Убедитесь, что вы извлекли ваши пароли
из fpm2
и kedpm
до удаления указанныхпакетов.
Пакет net-tools
устарел, он заменён
на iproute2
. Подробную информацию
смотрите раздел Раздел 5.3.9, «Пакет net-tools
устарел и будет
заменён на пакет iproute2
», либо Справочное
руководство Debian.
Инструменты мониторинга nagios3
были
удалены из выпуска stretch. Пакет icinga
является наиболее близким аналогом. Этот
инструмент считывает файлы настройки из другого места (отличного от
соответствующего места nagios), но в остальном совместим с последним.
Когда будет завершено выполение команды apt-get
dist-upgrade
, «формальная» процедура обновления будет
завершена. Для обновления до stretch не требуется выполнять каких-либо
специальных действий до выполнения перезагрузки.
По умолчанию компилятор GNU GCC 6, предоставляемый Debian stretch, компилирует все исполняемые файлы с опцией позиционной независимости. Это позволяет снизить риск от целого класса уязвимостей.
К сожалению, ядро Linux, поставляемое в Debian 8 (вплоть до версии 8.7),
содержит проблему, которая приводит к тому, что некоторые программы,
скомпилированные с опцией позиционной независимости, аварийно завершают свою
работу с неинформативным сообщением типа ошибки
сегментирования
. Данная проблема решена в версии Linux,
поставляемой в 8.8 (версия 3.16.43 или более поздняя), а также в ядре,
поставляемом в Debian 9 (версия 4.9 или более поздняя).
We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel from Debian 8.8 or newer, you are not affected by this issue.
Если вы используете проблемную версию ядра в ходе обновления, то настоятельно рекомендуется сразу же перезапустить систему, загрузив ядро из выпуска stretch, чтобы не столкнуться с указанной проблемой.
![]() | Примечание |
---|---|
Данный раздел предназначен в первую очередь для разработчиков или системных администраторов. Обычным пользователям данный раздел вряд ли будет актуален. |
Описанные выше особенности приводят к некоторым изменениям, о которых полезно знать.
Инструмент file (помимо прочих) классифицирует такие двоичные файлы как «разделяемые объекты», а не как «исполняемые файлы». Если у вас используются фильтры на основе двоичных файлов, то может быть их придётся обновить (например, к таковым относятся фильтры спама).
Статические библиотеки, компилирующиеся в исполняемые файлы, теперь также следует компилировать с опцией позиционной независимости. Следующее сообщение об ошибке от компоновщика является симптомом указанной проблемы:
relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
Заметьте, что даже хотя это сообщение об ошибке и говорит о -fPIC, достаточно заново скомпилировать код с опцией -fPIE (которая по умолчанию включена в пакеты GCC 6, поставляемые в выпуске stretch).
На первых порах позиционно независимые исполняемые файлы ассоциировались со
снижением производительности на некотором оборудовании. В частности, это
касается архитектуры Debian i386
(32-битные машины
Intel). Хотя в GCC 5 и GCC 6 была существенно улучшена
производительность позиционно независимых исполняемых файлов на 32-битных
машинах Intel, данная оптимизация может оказаться неприменимой ко
всем архитектурам. Рекомендуется оценить производительность вашего кода в
случае, если архитектура целевой машины имеет очень ограниченное число
регистров.
В связи с отсутствием интереса и возможностей тестирования разработчики Debian приняли решение об удалении подавляющего большинства совместимых с Linux Standard Base (LSB) пакетов.
Debian всё равно предоставляет несколько избранных ключевых утилит LSB,
используемых как внутренне, так и внешне, например, lsb-release
и функции инициализации sysvinit в
lsb-base
. Более того, Debian твёрдо
придерживается Стандарта
иерархии файловой системы (FHS) версии 2.3 с небольшими изменениями,
описываемыми в руководстве по Политике Debian.
Для некоторых пакетов Debian не может гарантировать какой-либо минимальной поддержки исправлений безопасности. О таких пакетах написано в следующих разделах.
Заметьте, что пакет debian-security-support
помогает отслеживать
статус поддержки безопасности установленных пакетов.
В Debian 9 включено несколько браузерных движков (browser engines), в которых постоянно находят большое количество уязвимостей. Из-за этого и частичного отсутствия авторской поддержки предыдущих версий возникают большие сложности с переносом исправлений безопасности в старые версии. Также из-за библиотечных зависимостей невозможно произвести обновление до новых версий. В силу этого, браузеры, созданные на основе механизмов webkit, qtwebkit и khtml, включены в Stretch, но не обладают полной поддержкой безопасности. Данные браузеры лучше не использовать для просмотра ненадёжных сайтов.
Для повседневной работы рекомендуется использовать браузеры Firefox или Chromium.
Chromium, хотя он основан на кодовой базе Webkit, является производным пакетом, который будет поддерживаться в актуальном состоянии путём сборки текущих выпусков Chromium для стабильного выпуска. Firefox и Thunderbird также будут поддерживаться в актуальном состоянии путём сборки текущих выпусков версии ESR для стабильного выпуска.
Node.js представляет собой платформу, собранную на основе libv8-3.14
, в этом пакете часто обнаруживаются
проблемы безопасности, но в настоящее время ни добровольцы, ни команда
безопасности не достаточно заинтересованы и не хотят тратить большое
количество времени, требуемого для решения этих проблем.
К сожалению, это означает, что пакеты libv8-3.14
, nodejs
, а также другие пакеты node-* указанной
экосистемы не должны использоваться с недоверенным содержимым, таким как
непроверенные данные из сети Интернет.
Кроме того, эти пакеты не будут получать обновлений безопасности в течении жизненного цикла stretch.
В большинстве случаев обновление пакетов с jessie до stretch должно проходить без особых проблем. В некоторых случаях может потребоваться небольшое вмешательство до или во время процесса обновления; подробности приводятся ниже для каждого отдельного пакета.
В выпуске OpenSSH 7 по умолчанию отключены некоторые устаревшие алгоритмы шифрования и протокол SSH1. Будьте внимательны при выполнении обновления тех машин, к которым у вас имеется доступ только через SSH.
Moreover, the default of the "UseDNS" configuration option has changed from yes to no. This may cause users who use the "from=" functionality in authorized_keys to limit ssh access by host to be locked out, which is especially troublesome if upgrading remotely.
Дополнительную информацию см. в документации по OpenSSH.
Данный раздел касается некоторых несовместимых изменений в APT, которые могут повлиять на вашу систему.
Теперь APT будет пытаться сбросить все права суперпользователя до загрузки файлов с зеркал. APT может определить некоторые распространённые случаи, когда это сделать нельзя, при обнаружении этих проблем, APT будет выполнять загрузку от лица суперпользователя с выводом предупреждения. Тем не менее, система не может определить некоторые необычные настройки (напр., правила сетевого экрана, касающиеся определённых идентификаторов пользователей).
Если вы столкнулись с проблемами с указанной возможностью, то измените
пользователя на пользователя _apt
и убедитесь, что
у пользователя имеется доступ для чтения к файлам в
/var/lib/apt/lists
и
/var/cache/apt/archives
.
у пользователя должен быть доступ к доверенному хранилищу APT
(/etc/apt/trusted.gpg
и
/etc/apt/trusted.gpg.d/
)
пользователь может разрешать DNS-имена и загружать файлы. Например, можно использовать следующие методы проверки:
# Из пакета dnsutils (если используется tor, то выполните проверку с помощью tor-resolve). $ nslookup debian.org >/dev/null || echo "Не удаётся разрешить debian.org" $ wget -q https://debian.org/ -O- > /dev/null || echo "Не удаётся скачать главную страницу debian.org"
При решении проблем с DNS убедитесь, что файл
/etc/resolv.conf
доступен для чтения.
В APT 1.1 был добавлен новый движок фиксации пакетов, который теперь соответствует описанию, приведённому на странице руководства.
Старый движок фиксации присваивал один приоритет фиксации на пакет; новый движок присваивает приоритеты фиксации на версию. Движок теперь выбирает версию с наибольшим значением фиксации, которая не приводит к снижению номера версии и имеет значение фиксации > 1000.
Данные изменения влияют на некоторые фиксации, в особенности на фиксации с отрицательными значениями. Ранее фиксация версии со значением -1 приводила к тому, что данный пакет не устанавливался (фиксация пакета имела значение -1); теперь же такое значение приводит к тому, что указанная версия этого пакета не будет установлена.
![]() | Примечание |
---|---|
Данный раздел актуален только в том случае, если вы используете (или намерены использовать) сторонние репозитории, либо если вы сами сопровождаете репозитории APT. |
Для улучшения стабильности выгрузки и гарантирования безопасности загружаемого содержимого APT теперь требует от репозитория APT выполнение следующих требований:
Должен быть доступен файл InRelease
Все метаданные должны включать в себя контрольные суммы для этих данных по меньшей мере в формате SHA256. Это требование касается также и GPG-подписи файла InRelease.
Подписи файла InRelease должны быть созданы с помощью ключ, имеющего размер не менее 2048 бит.
Если вы используете сторонний репозиторий, несовместимый с указанными выше требованиями, то попросите сопровождающего этого репозитория выполнить обновление. Дополнительную информацию о файле InRelease можно найти в вики Debian.
![]() | Примечание |
---|---|
Данный раздел будет актуален только в том случае, если вы уже доработали, или вам необходимо изменить настройки устройств ввода в Xorg по умолчанию. |
В jessie в качестве драйвера входных устройств в Xorg использовался драйвер
evdev
. В stretch этот выбор по умолчанию изменён на
libinput
. Если в ваших настройках Xorg используется
драйвер evdev
, то вам следует либо изменить настройки на
использование драйвера libinput
, либо заново настроить
свою систему на использование драйвера evdev
.
Ниже приведён пример настроек для драйвера libinput
,
включающих возможность «Emulate3Buttons».
Section "InputClass" Identifier "mouse" MatchIsPointer "on" Driver "libinput" Option "MiddleEmulation" "on" EndSection
Вставьте данный код в файл
/etc/X11/xorg.conf.d/41-middle-emulation.conf
,
перезапустите систему (либо перезапустите X-сервер), после этого новый
драйвер будет включен.
Драйвер evdev
всё ещё доступен в пакете xserver-xorg-input-evdev
.
Из-за недостатка сопровождающих основной ветки разработки система инициализации Upstart была удалена из stretch. Если в вашей системе используется этот пакет, то вам следует помнить, что в течение жизненного цикла Debian 9 этот пакет не будет получать обновления, а начиная с Debian 10 (buster) задачи upstart могут быть удалены из пакетов.
Подумайте над переходом на поддерживаемую систему инициализации, systemd или OpenRC.
![]() | Примечание |
---|---|
Данный раздел актуален в первую очередь для разработчиков или организаций, собирающих собственные пакеты Debian. |
Набор инструментов debhelper теперь по умолчанию создаёт пакеты
dbgsym
для двоичных файлов в формате ELF. Если вы
разрабатываете и создаёте пакеты с двоичными файлами, убедитесь, что
используемый вами набор инструментов поддерживает указанные дополнительные
автоматически создаваемые пакеты.
Если вы используете пакет reprepro
,
то вам следует обновить его до версии не меньше 4.17.0. При использовании
aptly
вам потребуется версия не
меньше 1.0.0, но она, к сожалению, не доступна в Debian stretch.
Если же ваш набор инструментов не может достойно справиться с этим, то вы
можете отключить в debhelper указанную возможность, добавив
«noautodbgsym
» в переменную
DEB_BUILD_OPTIONS вашей службы сборки. За дополнительной информацией
обратитесь к странице
руководства dh_strip.
Приложение openssl ожидает появление опциональных аргументов после обязательных. Например, следующая команда более не будет работать:
openssl dsaparam 2048 -out file
а это будет:
openssl dsaparam -out file 2048
В команде openssl enc хэш-сумма (используемая для создания ключа из парольной фразы) по умолчанию изменена с MD5 на SHA256. В том случае, если требуется расшифровать старые файлы с помощью новой версии OpenSSL (или нужно сделать что-то другое), используемую ранее хэш-сумму можно указать явным образом с помощью опции -md.
Шифры 3DES и RC4 более не доступны для взаимодействия через TLS/SSL. Серверы, скомпанованные с OpenSSL не могут предлагать их своим клиентам, а клиенты не могут соединяться с серверами, предлагающими только указанные шифры. Это означает, что у OpenSSL и Windows XP нет общих шифров.
Пакет libssl-dev
предоставляет
заголовочные файлы для компиляции с поддержкой OpenSSL 1.1.0. API сильно
изменился, возможно, ваше ПО больше не будет компилироваться. Доступен
обзор
изменений. Если вы не можете обновить ваше ПО, имеется пакет
libssl1.0-dev
, предоставляющий
заголовки OpenSSL 1.0.2.
![]() | Примечание |
---|---|
Данный раздел касается кода, сопровождаемого за пределами Debian - локально или третьими сторонами, а также устаревших сценариев Perl и модулей. |
Из базовой поставки Perl было удалено несколько модулей, которые теперь
поставляются в отдельных пакетах. Наиболее значительными примерами являются
CGI
, доступный теперь в пакете libcgi-pm-perl
, и
Module::Build
, доступный в пакете libmodule-build-perl
.
Текущий рабочий каталог (.
) был удалён из списка
включённых по умолчанию каталогов, @INC
. Это может влиять
на использование функций require()
,
do()
и других функций, чьими аргументами являются файлы
из текущего каталога.
Все программы и модули Perl, поставляемые в составе Debian, должны быть уже исправлены в плане указанного выше изменения; если вы обнаружите, что это не так, то отправьте нам сообщение об ошибке. Поскольку это изменение было сделано в Perl 5.26.0, ПО третьих сторон также должно быть уже исправлено. Информация для разработчиков о том, как исправить эту проблему, имеется в Информации о выпуске Perl 5.26 (см. раздел SECURITY).
Если вам требуется временно восстановить .
в
@INC
так, чтобы это изменение действовало глобально, то
закомментируйте соответствующую строку в
/etc/perl/sitecustomize.pl
, но вам следует делать это
только в том случае, если вы полнимаете потенциальный риск. Возможность
данного временного решения будет удалена в Debian 10. Также вы
можете установить переменную окружения
PERL_USE_UNSAFE_INC
в определённый контекст, что будет
иметь тот же эффект.
Полный список изменений в Perl по сравнению с версией в Debian 8 доступен в perl522delta и perl524delta.
Пакет с реализацией процедурного языка PostgreSQL PL/Perl в jessie
несовместим с версией Perl в stretch. Пакет postgresql-plperl-9.4
будет удалён в ходе
выполнения обновления, что сделать процедуры Perl на стороне сервера
неработоспособными. Эта проблема не должна повлиять на обновление до
PostgreSQL 9.6; процедуры будут работать в новом кластере PostgreSQL в том
случае, если установлен пакет postgresql-plperl-9.6
. Если вы не уверены в том,
что произойдёт, то сделайте резервную копию ваших кластеров PostgreSQL 9.4
перед обновлением до выпуска stretch.
Пакет net-tools
по умолчанию более
не является частью новых установок, поскольку его приоритет был снижен с
важного от опционального. Пользователям рекомендуется использовать
современный набор инструментов iproute2
(который уже входит в новые установки
нескольких выпусков). Если всё ещё предпочитаете использовать программы
net-tools
, то вы можете установить
этот пакет с помощью следующей команды:
apt install net-tools
Ниже приведён обзор команд net-tools и их эквивалентов из iproute2:
устаревшие команды net-tools | аналогичные команды iproute2 |
---|---|
arp | ip n (ip neighbor) |
ifconfig | ip a (ip addr), ip link, ip -s (ip -stats) |
iptunnel | ip tunnel |
nameif | ip link |
netstat | ss, ip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g) |
route | ip r (ip route) |
![]() | Примечание |
---|---|
Это касается только тех систем, в которых смонтированы устройства ATA через локальную сеть (AoE). Если в вашей системе не монтируются какие-либо общие сетевые каталоги, то вы можете пропустить данный раздел. |
В связи с проведение чистки в коде обработки сброса настроек сети,
используемые AoE-устройства более обрабатываются при выключении не так, как
это может ожидаться, что может приводить к зависанию и/или потере
данных. Для того, чтобы избежать этой ситуации, предлагается монтировать
такие устройства с помощью опции монтирования
_netdev
. Также эта опция доступна при использовании
подкачки через AoE.
В ходе обновления вы можете заметить предупреждения следующего вида:
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72. Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.
Эти предупреждения безвредны и появляются в том случае, если пакет
perl-base
был обновлён до пакета
debconf
.
![]() | Примечание |
---|---|
Данный раздел касается только тех систем, в которых используется SELinux. По умолчанию он выключен. |
В stretch хранилище правил SELinux перемещено из
/etc/selinux/
в
<имя_правила>
/var/lib/selinux/
.
Кроме того, был изменён формат, используемый внутри хранилища.
<имя_правила>
Правила, поставляемые Debian (например, из пакета selinux-policy-default
) будут автоматически
перемещены. Тем не менее, правила, специфичные для вашей системы, следует
переместить вручную.
Пакет semanage-utils
содержит
сценарий /usr/lib/selinux/semanage_migrate_store
, с
помощью которого это можно сделать.
The iSCSI Enterprise Target (IET), packaged in the iscsitarget
package in previous releases, is no
longer in Debian, as it will not work with recent kernel versions, and the
project has seen no development activity in recent years.
Users of IET are encouraged to switch to the LIO stack, which is fully
supported in Debian stretch. The package targetcli-fb
provides the configuration utility
for the LIO iSCSI target.
As the LIO stack was developed independently of the IET, the configuration has to be migrated manually.