Пользователи Linux гордятся, что установленную однажды систему можно обновлять до следующих версий. Дескать, в этом есть огромное преимущество свободной ОС перед операционками Microsoft. Сегодня я попытаюсь разобраться, есть ли в том смысл или проще переустановить систему с нуля после выхода нового релиза дистрибутива, как это делают пользователи Windows.
Я довольно долго работаю в Ubuntu Linux, который (как и Debian) обновить несложно, и буду использовать его в качестве примера. Здесь есть средства, предупреждающие пользователя о выходе новой версии дистрибутива и позволяющие обновиться, не пользуясь утилитами командной строки. Казалось бы, живи и радуйся. Однако всё не так просто.
В процессе перехода на новый релиз Ubuntu отключаются все сторонние репозитории и удаляются установленные оттуда пакеты. Это совершенно естественно, поскольку они собраны для предыдущей версии системы. При этом, если инсталляция с нуля на моей машине занимает минут двадцать, то процесс обновления растягивается на гораздо большее время — необходимо вычистить устаревшие пакеты и скачать из Сети новые.
В Natty Narwhal можно обновить версию Ubuntu с инсталляционного диска (Canonical не первый разработчик, дающий пользователю такую возможность, но обо всех дистрибутивах слишком долго рассказывать). Вам не придётся качать все необходимые пакеты из Сети, однако сильно от этого не полегчает: софт из сторонних репозиториев всё равно будет удалён, и его придётся ставить вручную.
Мне сложно понять, какой во всём этом смысл; если учитывать переустановку ПО, то процесс обновления станет не менее трудоёмким, чем новая инсталляция, и определённо более длительным. Понятно, что при этом будут автоматически установлены те же самые пакеты из основного репозитория, но их можно инсталлировать одной командой apt-get. К тому же это сомнительное преимущество: вместе с необходимыми программами в новой системе может появиться и куча хлама, который вы когда-то не удалили из старой.
Единственный плюс — относительная простота процесса. При обновлении системы пользователю задают меньше вопросов. На мой взгляд, это не очень критично — программы установки современных дистрибутивов особой сложностью не отличаются. Что же касается собственных скриптов и конфигов, то лично я не лезу руками в системную (каталог etc.) конфигурацию уже много лет по причине полного отсутствия необходимости в этом. Всё конфигурируется либо на этапе установки, либо через графический интерфейс. Кроме того, при обновлении Ubuntu до версии 11.04 системные настройки сбрасываются. Пользовательские же настройки хранятся в домашнем каталоге и к инсталляции системы никакого отношения не имеют.
Не думаю, что такой подход единственно верный, тем не менее я предпочитаю устанавливать Linux с нуля при переходе на новый релиз. И судя по тому, что в Ubuntu 11.04 также появился вариант замены (вычистить старую ОС и поставить новую), я не одинок в своем мнении.
В завершение позволю себе дать пару простых рекомендаций. Если вы предпочитаете переустанавливать ОС после выхода нового релиза (впрочем, в других случаях тоже), стоит создать для системы и домашних каталогов пользователей отдельные разделы. Тогда в программе установки будет достаточно выбрать вариант ручного разбиения диска, указать, что системный раздел (он будет корневым) нужно отформатировать, и подключить (не форматируя!) раздел с домашними каталогами в /home. При этом сложно почувствовать себя «тру-линуксоидом», но в итоге вы получите чистую систему и сохраните рабочие данные, а также пользовательский профиль.
Если же вам нравится вариант UPGRADE, лучше выбрать дистрибутив с непрерывным циклом разработки, вроде Arch или Gentoo. Релизов как таковых там нет, и система ставится один раз, а далее только обновляется.