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

Содержание

5.1. Поддержка LDAP
5.2. Состояние безопасности веб-браузеров
5.3. ConsoleKit и альтернативные экранные менеджеры
5.4. Поддержка и изменения рабочего стола GNOME
5.5. Изменения в рабочем столе KDE
5.6. NetworkManager
5.7. Удалён пакет perl-suid
5.8. Версии Request Tracker
5.9. Изменения в bootlogd
5.10. Файл /etc/mtab и _netdev
5.11. Переход с pdksh на mksh
5.12. Совместимость Puppet 2.6 / 2.7
5.13. Последствия введения мультиархитектуры для инструментов сборки
5.14. Настройка базы данных SQL для Cyrus SASL
5.15. Микропрограммы для драйверов сетевых и графических карт

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

5.1. Поддержка LDAP

Особенность в криптографических библиотеках, используемая в библиотеках LDAP, приводит к тому, что программы, использующие LDAP и пытающиеся изменить их эффективные привилегии, не могут соединиться с сервером LDAP с помощью TLS или SSL. Это может привести к проблемам с setuid-программами в системах, использующими libnss-ldap, наподобие sudo, su или schroot и с setuid-программами, которые выполняют поиск в LDAP, наподобие sudo-ldap.

Рекомендуется заменить пакет libnss-ldap на libnss-ldapd, более новую библиотеку, которая использует отдельную службу (nslcd) для всех поисков LDAP. Заменой для libpam-ldap является libpam-ldapd.

Обратите внимание, что libnss-ldapd рекомендует кэширующую службу NSS (nscd), пригодность которой в своём окружении вам нужно оценить до установки. В качестве альтернативы nscd можно рассмотреть unscd.

За дополнительной информацией обратитесь к #566351 и #545414.

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

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

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

В предыдущих выпусках прошлые версии Xulrunner переносились хорошо. Chromium, хотя и основан на Webkit, является отдельным пакетом, и для стабильного выпуска будет обновляться пересборкой актуальных версий Chromium.

5.3. ConsoleKit и альтернативные экранные менеджеры

ConsoleKit в Debian 7.0 не считает сеансы, запущенные с помощью startx или экранных менеджеров без поддержки consolekit (например, xdm или slim) локальными, что может привести отказу в доступе к некоторым устройствам.

Мы рекомендуем использовать gdm3, kdm или lightdm.

5.4. Поддержка и изменения рабочего стола GNOME

По умолчанию, некоторые специальные возможности (accessibility tools) не включены в экранном менеджере GNOME (gdm3). Простейшим способом включить лупу или экранную клавиатуру является включение приглашения «shell».

Для этого измените файл /etc/gdm3/greeter.gsettings, удалив комментарий со строки:

session-name='gdm-shell'

и закомментировав строку

session-name='gdm-fallback'

Заметим, что для работы потребуется графическая карта с поддержкой 3D (эта причина, по которой данная настройка по умолчанию выключена).

5.5. Изменения в рабочем столе KDE

Пакет knetworkmanager устарел и заменён на plasma-widget-networkmanagement в новом KDE Plasma Workspace.

Если вы используете устаревший knetworkmanager как отдельное приложение, то после обновления вам придётся сделать несколько действий вручную. Вам может потребоваться вручную добавить plasma-widget-networkmanagement на панель или рабочий стол.

Также, если сетевое подключение не должно зависеть от наличия запущенного виджета network-manager, вам может потребоваться настройка в виде «системного подключения».

5.6. NetworkManager

Программа NetworkManager способна обнаружить, что сетевой интерфейс настраивается с помощью ifupdown, но не другими программами управления сетевыми подключениями (например, wicd-daemon). Если две такие службы попробуют настроить сетевое подключение одновременно, то возникнут проблемы.

Например, если wicd-daemon и NetworkManager работают одновременно, попытка использования клиента wicd для подключения к сети приведёт к ошибке:

Connection Failed: bad password

В свою очередь, использование клиента NetworkManager завершится с ошибкой:

NetworkManager is not running.  Please start it.

Пользователям GNOME рекомендуется установить и попробовать использовать NetworkManager но, при желании, службу NetworkManager можно отключить с помощью команды:

# update-rc.d network-manager disable

После выключения службы рекомендуется проверить содержимое файла /etc/resolv.conf. Данный файл используется для указания серверов DNS и его данные могут меняться NetworkManager.

5.7. Удалён пакет perl-suid

Команда suidperl удалена авторами в версии 5.12, поэтому пакет perl-suid, в котором она содержалась в Debian, также был удалён. Для её замены можно использовать простую обёртку на Си с установленным битом setuid, которая запускает сценарий Perl из неизменяемого места, или воспользоваться более общим инструментом, например, sudo.

5.8. Версии Request Tracker

Если у вас установлен request-tracker3.8 в squeeze, то обратите внимание, что этот пакета был удалён из wheezy; он заменяется на request-tracker4. При обновлении с request-tracker3.8 на request-tracker4 требуется выполнить несколько действий вручную: установите request-tracker4 рядом с существующей установкой request-tracker3.8 и прочитайте заметки по установке/обновлению из файла /usr/share/doc/request-tracker4/README.Debian.gz (раздел: «Upgrading from request-tracker3.8 to request-tracker4»).

Этот же совет применим, если вы всё ещё используете request-tracker3.6 или более старые пакеты из предыдущих выпусков Debian; рекомендуется выполнять обновление последовательно, следуя соответствующей документации по обновлению.

5.9. Изменения в bootlogd

Команда bootlogd перемещена из пакета sysvinit-utils в отдельный пакет bootlogd. Если вы хотите продолжить использование bootlogd, установите пакет bootlogd. Заметим, что файл настройки /etc/default/bootlogd и его параметр BOOTLOGD_ENABLE больше не существуют; если вы не хотите запускать bootlogd, удалите пакет bootlogd.

5.10. Файл /etc/mtab и _netdev

Файл /etc/mtab, используемый для хранения списка смонтированных файловых систем, был заменён символьной ссылкой на /proc/mounts. Почти во всех случаях это изменение приводит к более жизнестойкой системе, так как в действительность список никогда не может стать некорректным. Однако, если вы используете параметр _netdev в /etc/fstab для указания того, что файловая система является сетевой файловой системой, которой требуется специальное обращение, то он больше не будет установлен в /proc/mounts после перезагрузки. Это не вызовет проблем со стандартными сетевыми файловыми системами, такими как NFS, которые не используют параметр _netdev. Файловые системы, которые не затрагиваются этим изменением: ceph, cifs, coda, gfs, ncp, ncpfs, nfs, nfs4, ocfs2 и smbfs. Для файловых систем, полагающихся на _netdev для правильного размонтирования при выключении, например NBD, возвращение обычного файла mtab является единственным способом использования _netdev в wheezy. Если это ваш случай, то после завершения обновления до wheezy восстановите обычный файл /etc/mtab:

  • Измените /etc/init.d/checkroot.sh, удалив комментарий из строк:

            if [ "$rootmode" != "ro" ]; then
                    mtab_migrate
            fi
    

  • Если вы перезагрузили систему и файл /etc/mtab стал символьной ссылкой:

    # rm /etc/mtab
    # cp /proc/mounts /etc/mtab
    

    Верните параметр _netdev, перемонтировав затронутые файловые системы:

    # mount -o remount filesystem
    

    Файл /etc/mtab будет пересоздан при следующей перезагрузке системы.

5.11. Переход с pdksh на mksh

Пакет Public Domain Korn Shell (pdksh) был удалён в следующем выпуске после wheezy, так как pdksh больше не сопровождается (не разрабатывается с 1999 года).

В пакете MirBSD Korn Shell (mksh) содержится его потомок; он вырос из Public Domain Korn Shell и доработан чтобы соответствовать стандарту POSIX для оболочек. В Debian wheezy, pdksh является переходным пакетом использующим lksh, вариант mksh, собранный со специальными параметрами совместимости и предоставляет символьную ссылку pdksh. Данный совместимый исполняемый файл работает, по большей части, как обычный Public Domain Korn Shell, нежели текущий mksh. Однако, так как он содержит исправления изменяющие поведение, он не является полноценной заменой. Поэтому после изменения

#!/bin/pdksh

в своих сценариях на

#!/bin/mksh

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

#!/bin/lksh

и снова проведите тесты. На этот раз ошибки возникнуть не должны. Однако, заметьте, что в какой-то момент в будущем этот переходный пакеты будет удалён из Debian.

Исполняемый совместимый файл не подходит для интерактивного использования, поэтому, если вы системный администратор, исправьте регистрационные оболочки Korn Shell у пользователей. Чтобы минимизировать простой, выполните это до обновления ОС: установите вручную пакет mksh и измените регистрационные и/или интерактивную оболочку пользователей, использующих pdksh, на mksh. Кроме этого, возможно полезно скопировать файл /etc/skel/.mkshrc в их домашние каталоги: он предоставляет некоторые функции оболочки, такие как pushd, popd и dirs и замечательную

PS1

(приглашение командной строки).

5.12. Совместимость Puppet 2.6 / 2.7

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

При такой комбинации запуск puppet agent вызовет следующую ошибку:

Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST

Для решения этой проблемы требуется обновить puppetmaster. Мастер 2.7 позволяет управлять и клиентской частью версии 2.6.

5.13. Последствия введения мультиархитектуры для инструментов сборки

При введении мультиархитектуры (описано в Раздел 2.3.2, «Мультиархитектура») изменились пути к некоторым файлам, которые могут не соответствовать предположениям, сделанным в инструментах сборки. Инструменты сборки Debian были обновлены, но пользователям, пытающимся собрать и использовать сторонние компиляторы, нужно это учитывать.

Некоторые обходные решения проблем можно найти в /usr/share/doc/libc0.1/NEWS.Debian.gz и сообщении об ошибке #637232.

5.14. Настройка базы данных SQL для Cyrus SASL

Настройка СУБД SQL для Cyrus SASL, предоставляемая пакетом libsasl2-modules-sql, была изменена; теперь настройка выполняется модулем не какой-то определённой СУБД (например, mysql), а одним для всех — auxprop sql.

Файлы настройки приложений, использующих SASL, нужно обновить, например:

auxprop_plugin: mysql

нужно заменить на:

auxprop_plugin: sql
sql_engine: mysql

Также, требует обновления запрос SQL (если используется): %u заменяется на %u@%r, так как пользователь и область теперь задаются раздельно.

5.15. Микропрограммы для драйверов сетевых и графических карт

Для правильной работы некоторых драйверов аппаратуры, включая драйверы сетевых карт (для проводного или беспроводного подключения), а также драйвера графических чипсетов ATI/AMD, требуется загрузка микропрограммы.

Такая микропрограмма, зачастую, не является свободным ПО, и поэтому доступна только в архиве non-free, в пакете firmware-linux и других.