Обновление Debian 7 wheezy до Debian 8 Jessie
В свете недавнего выхода новой версии Debian 8 Jessie, об установке которой я уже рассказал в одной из своих статей, стал актуален вопрос обновления предыдущей версии wheezy до актуальной Jessie. Процесс этот хоть и штатный, возможность обновления до новой версии всегда предоставляется разработчиком, но нюансов в процессе возникает достаточно много, поэтому нужно подробно разобраться в последовательности действий.
Итак, у нас имеется:
# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.7 (wheezy) Release: 7.7 Codename:
wheezy
Ее мы будет обновлять до 8-й версии Jessie.
Первым делом перед любым обновлением нужно сделать бэкап всей важной информации и файлов конфигураций. В каждом конкретном случае это будет свой набор данных, так что сами решайте, какие данные для вас являются важными, и копируйте их куда-нибудь.
dpkg --get-selections "*"
Это позволит сохранить список установленных пакетов и настроек к ним.
Теперь обновим текущую систему wheezy:
# apt-get update # apt-get upgrade # apt-get dist-upgrade
Теперь добавляем новое зеркало в файл /etc/apt/sources.list. До обновления у меня этот файл выглядел так:
# cat /etc/apt/sources.list deb http://mirror.yandex.ru/debian/ wheezy main deb-src http://mirror.yandex.ru/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main
deb http://mirror.yandex.ru/debian/ wheezy-updates main deb-src http://mirror.yandex.ru/debian/ wheezy-updates main
deb http://mirror.yandex.ru/debian jessie main contrib
Теперь обновляем список доступных пакетов для нового выпуска:
# apt-get update
Обновление системы будем делать в 2 этапа. Сначала минимальное обновление, потом полное. Делаем минимальное обновление:
# apt-get upgrade
Это приведет к обновлению только тех пакетов, которые можно обновить без необходимости удаления или установки других пакетов.
Во время обновления выскочит окошко с вопросом:
Отвечаем Yes.
После завершения минимального обновления debian, запускаем полное:
# apt-get dist-upgrade
Эта команда произведёт полное обновление системы, установив последние доступные версии всех пакетов и разрешив все изменившиеся между выпусками wheezy и Jessie зависимости. При необходимости будут установлены новые пакеты и удалены все вызывающие конфликты устаревшие пакеты.
Во время обновления будет задан вопрос:
Суть дела вот в чем. В версии ssh-server, которая стояла на wheezy, по-умолчанию было разрешено подключаться пользователю root с паролем. В Jessie в ssh сервере по-умолчанию стоит настройка PermitRootLogin without-password, которая запрещает логин пользователя root с паролем. Выбирайте сами, как хотите логиниться. Я оставил возможность подключаться с паролем root, ответив No.
Дальше в процессе установки мне был задан вопрос поп поводу apache:
Configuration file '/etc/apache2/apache2.conf' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** apache2.conf (Y/I/N/O/D/Z) [default=N] ?
Тот же самый вопрос чуть позже был задан по поводу php. Я оставил старый конфигурационный файл.
После завершения работы команды apt-get dist-upgrade обновление завершено. Можно перезагружаться:
# reboot
Проверяем версию:
# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.0 (jessie) Release: 8.0 Codename:
jessie
Обновление wheezy прошло успешно. На выходе имеем последнюю версию Debian 8 Jessie.
У меня возникла только одна проблема. После обновления не стартовал apache2:
# service apache2 start Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details. # systemctl status apache2.service Starting web server: apache2 failed! The apache2 configtest failed. ... (warning). Output of config test was: apache2: Syntax error on line 265 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/conf.d/: No such file or directory Action 'configtest' failed. The Apache error log may have more information. apache2.service: control process exited, code=exited status=1 Failed to start LSB: Apache2 web server. Unit apache2.service entered failed state.
Тут все понятно, немного изменилась структура каталогов в новой версии. Нашел в файле /etc/apache2/apache2.conf строчку Include conf.d/ и закомментировал ее. Пробую запускать:
# systemctl start apache2.service Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details. # systemctl status apache2.service Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration
Опять ошибка. Функция LockFile не работает, отключаем ее, закомментировав сроку LockFile ${APACHE_LOCK_DIR}/accept.lock.
После этого apache2 нормально стартует.
На этом обновление Debian 7 wheezy до Jessie окончено.
debian 2015-04-30