Обновление Debian с Wheezy до Jessie — пошаговое руководство
Перед началом сделайте полный бэкап конфигурации, данных пользователей и баз данных. Проверьте, что в /etc/apt/sources.list указано «wheezy», установите все обновления Wheezy, затем замените репозитории на «jessie» и выполните поочерёдно apt-get upgrade и apt-get dist-upgrade. После успешного обновления перезагрузите сервер и проверьте /etc/os-release и работу ключевых сервисов.
Важно: обновление ядра и init-системы может изменить поведение служб (Jessie использует systemd). Планируйте окно обслуживания и откатную стратегию.
Оглавление
- Введение
- Подготовка и бэкап
- Проверка состояния пакетов
- Обновление репозиториев и сам апгрейд
- После обновления: проверки и тесты
- Частые проблемы и когда обновление не пройдёт
- Альтернативные подходы
- План отката и восстановление
- Роли и чек-листы
- Риски и меры снижения
- Мини-методология и критерии приёмки
- Полезные команды и сниппеты
- Ссылки
Введение
Этот документ описывает последовательность действий для обновления Debian с релиза Wheezy до релиза Jessie. Описанные шаги просты, но требуют тщательной подготовки. Обновление меняет версии библиотек, ядро и init-систему — это критичная операция для продакшен-серверов.
Определение: init-система — программа, запускающая и управляющая сервисами на этапе загрузки (в Jessie по умолчанию — systemd).
Подготовка и бэкап
Сделайте полный бэкап перед началом. Сюда входят:
- /etc — конфигурация системы
- /home — данные пользователей
- /var/www (или каталог веб-приложений)
- /var/vmail или другие директории почтового сервера
- Базы данных (MySQL, PostgreSQL и т.д.)
Рекомендуемые места хранения бэкапа: внешний диск, удалённый сервер по FTP/SFTP/rsync или облачный диск.
Примеры архивирования с сохранением прав и символьных ссылок:
tar -pczf etc.tar.gz /etctar -pczf www.tar.gz /var/wwwtar -pczf home.tar.gz /homeДля ISPConfig 3 — файлы почтового сервера:
tar -pczf vmail.tar.gz /var/vmailДамп всех баз MySQL (без пароля в команде, используется файл конфигурации дебиа):
mysqldump --defaults-file=/etc/mysql/debian.cnf -cCeQ --hex-blob --quote-names --routines --events --triggers --all-databases -r all_databases.sqlПереместите архивы и .sql файлы на безопасное хранилище.
Важно: протестируйте восстановление (в тестовой среде) до выполнения обновления в продакшене.
Проверка файла /etc/apt/sources.list
Перед установкой любых обновлений убедитесь, что в /etc/apt/sources.list не используется метка “stable”. Если там указано “stable”, apt может перейти на новую стабильную версию раньше, чем вы готовы.
Откройте файл в редакторе, например:
nano /etc/apt/sources.listПример строк для Wheezy (замените код страны на свой):
deb http://ftp.de.debian.org/debian wheezy main contrib non-free
deb-src http://ftp.de.debian.org/debian wheezy main contrib non-free
deb http://ftp.de.debian.org/debian wheezy-updates main contrib non-free
deb http://ftp.de.debian.org/debian-security wheezy/updates main contrib non-freeПримечание: использование зеркала вашей страны ускорит загрузку пакетов.
Установка всех обновлений для Wheezy
Установите все ожидающие обновления Wheezy. Это уменьшит риск конфликтов при переходе на Jessie.
apt-get updateapt-get upgradeapt-get dist-upgradeОстановите ненужные сервисы (например, приложения, базы), если это возможно. Это снизит вероятность проблем с блокировкой файлов.
Проверка состояния пакетов
Перед обновлением убедитесь, что нет пакетов в состоянии hold или полурезультате установки. Исправьте все «сломанные» пакеты.
Проверки:
dpkg --auditdpkg --get-selections | grep holdЕсли какие-то пакеты отмечены как hold, разблокируйте или завершите их установку, например:
echo "package install" | dpkg --set-selections
apt-get -f install(Замените package на имя пакета.)
Обновление /etc/apt/sources.list для Jessie
Отредактируйте /etc/apt/sources.list и замените все упоминания wheezy на jessie. Пример:
deb http://ftp.de.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.de.debian.org/debian/ jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-freeСнова выберите ближайшее зеркало, заменив код страны по необходимости. Сохраните файл и обновите список пакетов:
apt-get updateОбновление в два этапа
Рекомендуется разделить обновление на два шага. Сначала установите обновления базовых пакетов, затем выполните полную дистрибутивную замену.
Шаг 1 — обновление пакетов:
apt-get upgradeШаг 2 — дистрибутивное обновление:
apt-get dist-upgradeВо время apt-get dist-upgrade могут появиться запросы по перезаписи конфигурационных файлов. Внимательно читайте подсказки. Если вы не уверены, сохраняйте текущие конфигурации и анализируйте изменения в тестовой среде.
После завершения перезагрузите систему, чтобы загрузить новое ядро и init-систему:
rebootПроверка результатов обновления
Проверьте текущую версию системы:
cat /etc/os-releaseОжидаемый вывод на Jessie должен содержать информацию о Debian GNU/Linux и релиз jessie.

Также проверьте состояние ключевых сервисов (SSH, веб, БД, почта):
systemctl status ssh
systemctl status apache2
systemctl status mysqlЕсли systemctl недоступен на вашей системе, используйте service:
service ssh statusЧастые проблемы и когда обновление не пройдёт
Когда обновление может провалиться:
- Нехватка свободного места на /, /var или /boot. Очистите место до начала.
- Сторонние репозитории с неподдерживаемыми пакетами (ppa/third-party) — они могут вызвать конфликты. Отключите их перед обновлением.
- Пакеты, помеченные как hold или полуставленные.
- Модифицированные конфигурации, которые требуют ручного слияния.
- Сильно кастомизированные ядра или проприетарные модули, несовместимые с новым ядром.
Совет: перед обновлением выполните тестовое обновление на копии сервера или виртуальной машине.
Альтернативные подходы
- Пошаговая миграция сервисов: поднять новую систему (Jessie) на отдельном хосте и перенести службы по очереди.
- Контейнеризация: переместить приложения в контейнеры (Docker) и обновить хост отдельно.
- Минимальный образ: установить чистую Jessie и восстановить конфигурации и данные из бэкапа.
Каждый подход имеет свои плюсы: миграция на новый хост даёт более чистую систему и меньше зависимостей, но требует дополнительного времени и ресурсов.
План отката и восстановление
Если обновление прошло некорректно — выполните откат:
- Немедленно переведите сервисы в режим обслуживания (maintenance).
- Восстановите файлы из архива (например, /etc, /var/www) на прежнюю систему или в тестовую среду.
- Восстановите дамп баз данных:
mysql < all_databases.sql- Если вы создавали снимок диска (LVM snapshot или snapshot виртуальной машины), откатите его.
- Восстановите конфигурацию загрузчика, если нужно.
Критерии успеха отката: система загружается в предыдущее состояние, сервисы работают как до обновления, данные целы.
Роли и чек-листы
Чек-лист для системного администратора:
- Сделан полный бэкап и протестировано восстановление
- Проверено свободное место на дисках
- Отключены сторонние репозитории
- Устранены held / broken пакеты
- Оповещены пользователи и назначено окно обслуживания
- Подготовлен план отката
Чек-лист для разработчика приложения:
- Протестирована совместимость с новой версией библиотек
- Вынесены внешние зависимости (например, отдельные сервисы)
- Обновлены конфигурации и скрипты запуска
Руководство для оператора хостинга:
- Наблюдение за логами после обновления
- Мониторинг использования CPU, памяти и дисков
- Готовность к быстрому восстановлению контейнеров/VM
Риски и меры снижения
Матрица рисков (упрощённо):
- Неполадки при загрузке — риск высокий; мерирование: иметь доступ к консоли, live-образ или snapshot.
- Потеря данных — риск высокий; мерирование: проверенные бэкапы и тест восстановления.
- Снижение совместимости приложений — риск средний; мерирование: тестирование на стейджинге.
Мини-методология (быстрая инструкция)
- Сделать бэкап (данные + БД + конфиги).
- Проверить состояние пакетов и диск.
- Убедиться, что sources.list указывает wheezy.
- apt-get update && apt-get upgrade && apt-get dist-upgrade (Wheezy).
- Заменить wheezy на jessie в sources.list.
- apt-get update && apt-get upgrade && apt-get dist-upgrade (Jessie).
- Перезагрузить и проверить систему.
Критерии приёмки
- Система загружается и в /etc/os-release указан jessie.
- Критические сервисы (SSH, веб, БД, почта) работают.
- Нет «сломанных» или помеченных hold пакетов.
- Логи не содержат фатальных ошибок в течение окна наблюдения.
Полезные команды и сниппеты
Проверка свободного места:
df -hСписок активных зеркал и приоритеты apt:
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/Удаление пакетов, оставшихся от старых версий:
apt-get autoremove
apt-get autocleanПростая схема принятия решения
flowchart TD
A[Готов ли бэкап и тест восстановления?] -->|нет| B[Сделать бэкап и протестировать восстановление]
A -->|да| C[Есть held/broken пакеты?]
C -->|да| D[Исправить состояния пакетов]
C -->|нет| E[Обновить wheezy и заменить на jessie]
E --> F[Выполнить upgrade и dist-upgrade]
F --> G[Перезагрузить]
G --> H[Проверить сервисы и /etc/os-release]Когда обновление не подходит
- Если у вас критичное окружение без окна обслуживания и без резерва — лучше сначала поднять новую систему параллельно и мигрировать сервисы.
- Если приложение зависит от очень старых библиотек, которые не поддерживаются в Jessie — рассмотрите контейнеризацию с сохранением старого окружения.
Ссылки
- Debian: http://www.debian.org/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента