Библиотека сайта rus-linux.net
Red Hat Linux 9 Cyrillic Edition с точки зрения пользователя.
(C) В.А.Костромин, kos @ rus-linux dot net
Часть 1. Инсталляция
1.5. Обновление существующей системы.
Новые версии дистрибутивов Linux появляются примерно раз в полгода.
И вы оказываетесь перед проблемой: обновить систему или работать в старой,
настроенной и отлаженной системе. Вообще-то, если необходимые вам приложения
работают без нареканий и позволяют выполнять все стоящие перед вами задачи,
необходимости обновлять систему вроде бы нет. Ибо одно я могу вам сказать
точно: в процессе обновления системы проблемы у вас будут гарантированно.
Недаром появился широко известный анекдот про программиста и его сына:
- Папа, папа! Почему солнце встает на востоке, а садится на западе?
- Сынок, система работает? Работает! Вот ты ее и не трогай!
Основной (а может быть и единственной) причиной перехода на новую
систему является отказ какого-либо из необходимых Вам программных средств
работать в старой системе. Частными случаями такой ситуации являются,
на мой взгляд, такие
- когда вы вынуждены обновить ядро системы (из-за наличия в старой версии
ядра проблем с безопасностью или когда вы установили в систему новое
устройство, для поддержки которого необходима новая версия ядра);
- когда выходит новая версия вашего любимого приложения, имеющая
новые и необходимые вам возможности возможности, но которая отказывается
устанавливаться в вашу систему в силу несовместимости с ранее установленными
пакетами или библиотеками.
Поскольку может оказаться, что обновить всю систему легче, чем разбираться с разрешением бесконечных зависимостей, мы и приходим к мысли, что необходимо установить новую версию дистрибутива.
Вот тогда перед вами уже встает (как говорится "в полный рост") вопрос о том, каким способом провести обновление системы. Вариантов тут несколько.
Вариант первый и самый простой - отформатировать диск и установить все заново. Не думаю, что этот вариант покажется приемлемым для тех, кто ставит систему не ради экспериментов с самой операционной системой, а ради того, чтобы использовать компьютер для решения каких-то практических задач (хотя бы в роли домашней пишущей машинки + архив набранных текстов). Ведь в этом случае теряется все, что вы на этой самой пишущей машинке наработали и накопили. Поэтому данный вариант мы далее не рассматриваем.
Большинство дистрибутивов, и Red Hat в частности, на этапе инсталляции предлагают выбор - обновить существующую систему или установить ее заново. Эти два варианта мы и попытаемся сравнить и показать преимущества и недостатки каждого из них.
Вариант второй. Обновление системы с помощью программы инсталляции. При выборе этого варианта сохраняются различные конфигурационные файлы, настройки программ и так далее. Вроде бы привлекательная возможность. Однако у такого решения имеется и обратная сторона. Если вы обновляете систему, вы тащите за собой весь тот хлам, который в старой системе накопился. Есть в этом хламе и жемчужины ценных наработок, но их так немного! А хлам все же надо иногда убирать.
В том, что
периодическая "чистка" системы необходима, меня лично убеждает следующий факт.
На моем домашнем компьютере стоит ASP Linux. Два года назад (или около того,
сейчас уже точно не помню, да это и неважно) я установил на него ASP Linux 7.2
Express Edition с ядром версии 2.4.9-13. После выхода ASP Linux версии 7.3 я провел
обновление системы. В результате появилось ядро версии 2.4.18-5asp и осталась
возможность загрузки предыдущего ядра. Но самый поразительный результат
обновления состоял в том, что многие rpm-пакеты в системе оказались тоже продублированы.
Вот несколько примеров, полученных в результате выполнения команды
rpm -qa | sort > ~/rpm.txt
aspldr-0.9-5 aspldr-2.0-4 asplinux-logos-1.1.3-3.asp asplinux-logos-1.1.3-4asp asplinux-release-7.2-1.asp asplinux-release-7.3-1.asp bash-2.05-12.asp bash-2.05a-13.asp bzip2-1.0.1-4 bzip2-1.0.2-2 console-tools-19990829-36.0.asp console-tools-19990829-40.2asp curl-7.8-1 curl-7.9.7-1.asp e2fsprogs-1.23-2 e2fsprogs-1.27-3 fileutils-4.1-10.asp fileutils-4.1-5.asp fonts-CP1251-1.0-1.asp fonts-CP1251-75dpi-1.0-1.asp fonts-KOI8-R-1.0-1.asp fonts-KOI8-R-75dpi-1.0-1.asp gawk-3.1.0-4.1.asp gawk-3.1.0-4.asp gcc-2.95.4-0.20010823.3 gcc-2.96-112asp kdeadmin-3.0.0-2 kdeadmin-3.0.2-1asp kdebase-3.0.0-2 kdebase-3.0.2-2asp mozilla-0.9.5-2.asp mozilla-1.0-1.aspИ таких пар оказалось огромное количество.
Я здесь должен оговориться. Я не знаю, может быть такая ситуация характерна только для дистибутива ASP Linux и при использовании других дистрибутивов (других программ установки) все будет в порядке. А можеет быть это я что-то сделал неправильно в процессе обновления. Но факт тот, что лично я в такую ситуацию попал.
В силу того, что на основном компьютере у меня стоит диск приличного объема, это меня до сих пор не сильно волновало. Действительно, результат выполнения команды df
Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda5 2055600 255356 1695824 14% / /dev/hda7 3107092 2482564 466692 85% /usr /dev/hda8 14998392 8363932 5872580 59% /home /dev/hda1 2044244 581224 1463020 29% /mnt/win_c /dev/hda6 16273960 14382624 1891336 89% /mnt/win_d none 224860 0 224860 0% /dev/shmпоказывает, что места на диске вполне хватает. Но, как вы понимаете, каждый из оставшихся в системе дублирующих пакетов представляет собой не что иное, как совершенно ненужный "мусор", просто призывающий хорошего хозяина (хозяйку) заняться "генеральной уборкой". Но вы только представьте себе, каких трудозатрат потребует удаление всех ненужных пакетов вручную, посредством вызова команды rpm -e имя_пакета. Ведь число установленных пакетов у меня оказалось равным 912 и добрую половину их требуется удалить! А если обновление системы проводилось неоднократно?
И это только один пример. А ведь возможно есть еще какие-то остатки от неудачных попыток установки каких-то дополнительных пакетов, а также и прекрасно установившиеся пакеты, с которыми вы некоторое время поэкспериментировали и пришли к выводу, что они вам не нужны. Да мало-ли какой хлам образуется вокруг нас и в обычной жизни и в компьютерном хозяйстве. Так что, второй вариант решения проблемы обновления тоже имеет свои недостатки. А если учесть еще и те последствия, о которых я расскажу при рассмотрении следующего варианта, обновление системы покажется совсем уж непривлекательным.
Вариант третий. Сохранение раздела с каталогами пользователей.
В Линукс, как известно, существует стандартная структура каталогов, причем все стандартное системное программное обеспечение размещается в каталогах /bin и /sbin, все дополнительно устанавливаемое ПО оказывается в каталоге /usr, а все персональные настройки и личные файлы пользователей размещаются в каталоге /home. Причем, если вы не
Сначала с помощью команды df выясняем, в каком разделе диска у нас находится старый раздел /home и хорошенько запоминаем, что в старой (пока еще существующей системе) каталог /home находился в разделе /dev/hda4 (это чтобы не уничтожить ненароком все его содержимое). Если места достаточно, то лучше скопировать все его содержимое в какой-то временный раздел. Если вы хотите сохранить протоколы работы системы, то туда же надо скопировать содержимое каталога /var/log.
Что еще надо сохранить - так это все конфигурационные и настроечные файлы, которые находятся в каталоге /etc. Чтобы не забыть что-нибудь и не тратить время на ненужные разборки, проще всего сохранить копию всего каталога /etc в том разделе, который вы не собираетесь форматировать (
Затем проводим установку системы, причем на этапе задания разбиения диска раздел /home не форматируем. Тогда все его содержимое сохранится.
Затем ставим по отдельности нужные пакеты (русификация и прочее необходимое).
Если какой-то пакет или приложение требует конфигурации, сверяемся со старым конфигурационным файлом, который мы сохранили, и делаем все настройки по аналогии.
Вот, вроде бы и все.
Но это все были умозрительные построения. Поскольку система исправно работала, я никак не решался взяться за ее модификацию. Больше всего меня страшила возможность нарушить работу системы виртуальных машин VMware. Я ее постоянно гоняю для подготовки к печати своих статей и рукописи второго издания книги [1]. Но вот случилось так, что потребовалось мне запустить OpenOffice.org Writer по какой-то надобности, а он работать отказался. То есть запуститься то он вроде как запустился, но при попытке открытия любого файла появлялось сообщение об ошибке, после чего окно программы исчезало с экрана. Попробовал я переустановить программу с дистрибутивного диска последней версии Mandrake (для точности - это была версия 9.2), но появилась куча сообщений о неудовлетворенных зависимостях. А у меня к тому времени имелся еще и дистрибутив ASP Linux 9. И решился я не просто установить с него OpenOffice, а провести обновление системы. Ну, а раз уж "пошла такая пьянка", то опробовать оба варианта - и ообновление существующей системы как предлагает соответствующий вариант установки, и тот вариант обновления, который я описал выше (с удалением всего ранее становленного ПО, переформатированием всех разделов, кроме /home). Естественно, вналчале испытываем первый вариант, а иначе потом будет нечего обновлять.
Для завершения предисловия отмечу, что кроме стандартного ПО из дистрибутива ASP Linux 7.2 я часто пользовался следующими дополнительно установленными программами: браузером Mozilla (я как-то установил его вмсто стандартного Netscape), программой просмотра изображений XnView (очень удобная программка для быстрого просмотра графических файлов, например, для того, чтобы выбрать цифровые фото для сдачи в фотоателье), ну, и VMware, о которой я уже упоминал. Перед тем, как начать обновление, я убедился, что у меня имеются rpm-пакеты для их установки. Разбиение диска на разделы было показано выше. Я еще скопировал в раздел /home каталоги /etc (чтобы потом восстановит установки из старых конфигурационных файлов) и /root (на всякий случай), после чего установил первый дистрибутивный диск ASP Linux 9 Express Edition и перезапустил компьютер.
На этапе выбора типа установки (это третий шаг после запуска программы инсталляции) выбираю "Обновление существующей системы Linux".
Рис.
Поскольку программа инсталляции позволяет изменить размер раздела, я решился уменьшить объем корневого раздела, за счет чего увеличить объем раздела /usr (посмотрите выше? первый у меня был заполнен га 14%, а второй - на 85%) На следующем рисунке вы видите, как это делается.
Рис.
Процедура изменения размера разделов длится довольно долго. Но в результате я увидел сообщение о том, что метка /usr задана неправильно или уже используется. Приходится отказаться от изменения размеров раздела. Начинается процедура установки, но она завершается сообщенеим, что установка невозможна.
Приходится начать все заново. Перезапускаю компьютер, теперь уж переразбить диск не пытаюсь. Удивляет то, что программа установки не предагает отформатировать разделы заново (поскольку я перед этим несколько раз ставил Red Hat Lnux 9, а там такая опция предлагается по умолчанию, ожидал и здесь предложения отформатировать раздел. Но таковое не появилось. Пошла установка пакетов, причем даже не спрашивая, что надо устанавливать, а что не надо.
Поцедура не скорая, успел поужинать, посмотреть телевизор, а все еще прогресс-бар показывает только 50%.
Но все когда-нибудь кончается и наконец появилось сообщение "Установка пакетов завершена". Дополнительно появилось сообщение о том, что имела место ошибка при установке пакета Abiword, но в этом ничего удивительного нет, поскольку я его в свое врямя снес, причем, вероятно, не совсем корректно. Далее мне было предложено выбрать загрузчик (предлагается на выбор ASPLoader, LILO и GRUB, я выбрал GRUB), вставить в дисковод отформатированную дискету и, наконец, появилось сообщение об успешном завершении установки.
После перезагрузки GRUB предложил на выбор уже 4 варианта - 3 у меня было раньше и появился еще вариант с ядром 2.4.20. По умолчанию оно и запускается. Дожидаюсь окончания загрузки, ввожу ранее заданный пароль пользователя kos (его заводить тоже не пришлось) и запускаю графику командой startx. А дальше возникла куча проблем.
Во-первых, внешний вид экрана существенно изменился, причем иконки на панели и рабочем столе перестали служить для вызова приложений. Так что я даже не смог вызвать ksnapshot для того, чтобы снять картинку, которую вы видите на рис.8. К счастью, через главное меню удалось вызвать GIMP, которым этот снимок и был сделан.
Во-вторых, система работает в режиме русского языка и в латиницу никак не хочет переключаться. Перехожу во вторую виртуальную консоль, вхожу в систему root-ом, смотрю, что записано в файле /etc/X11/XF86Config. Там стоит "grp:alt_shift_toggle,grp_led:scroll", однако комбинация Alt+Shift не работает, как и все остальные. Попытка использовать Центр управления KDE для смены раскладки тоже ничего не дала.
Но хуже всего, что не запускается почтовая программа KMail, которая как раз сегодня мне очень нужна.
Попробовал я еще скопировать файл XF86Config-4 сохраненный в архиве, но и это не помогло. Короче, после часа безуспешных попыток бросил я эти эксперименты и решил пойти тем путем, который предложил в начале этой статьи - сохранить раздел /home, а остальные отформатировать и поставить систему заново.
Теперь на третьем шаге установки выбираю вариант "Выборочная установка". Изменить размер разделов мне по-прежнему не удалось - появилось сообщение "Точка монтирования указана неправильно или уже используется". Впрочем, тут я видимо, был недостаточно настойчив (мне так показалось в ходе дальнейших действий), но я так и не разобрался и отказался от попыток переразбить диск. Начал установку заново, провел выбор пакетов для установки (не очень задерживаясь на этом этапе, задал что попалось на глаза и щелкунул по кнопке "Разрешение зависимостей".
Снова пришлось долго ждать, пока установятся пакеты. И оказалось, что я зря так пренебрежительно отнесся к этапу выбора пакетов. В результатае не было задано для установки и одного загрузчика и инсталляция завершилась тем, что на этапе выбора загрузчика выбирать оказалось нечего. Снова пришлось ставить первый дистрибутивный диск и перезагружать компьютер.
На этот раз я все же переразбил диск. Правда, как выяснилось после запуска вновь установленной системы, переразбиение это прошло не совсем удачно. То есть уменьшение объема разделов осуществилось, но занять освободившееся пространство не удалось. Придется подправлять с помощью Partition Magic. Короче, я еще раз убедился, что средств переразбиения дисков под Линукс пока нет.
Тем не менее установка завершилась относительно успешно. И первый запуск прошел тоже более-менее успешно. Начнем восстанавливать те настройки и программы, которые работали в старой системе.
Первым делом пришлось мне восстанавливать таблицу монтирования дисков. Просто скопировал старый файл fstab из архива в каталог /etc, восстановил старые подкаталоги в каталоге /mnt и дал команду mount -all. После этого каталоговая структура приняла привычный вид.
Попробовал еще перезагрузиться в Windows 98, загрузка прошла успешно.
Снова загружаю Linux. Первым делом надо научить компьютер говорить по русски. Заглядываю в свои старые шпаргалки (склероз, что поделаешь) и действую по прописанным там рецептам: устанавливаю локаль путем копирования сохраненного файла /etc/sysconfig/i18n, сравниваю другие файлы из /etc/sysconfig с их сохраненными аналогами и вношу необходимые поправки в новые версии конфигурационных файлов. Устанавливаю третий уровень запуска по умолчанию.
В общем, буду краток и перечислю только то, что дела, а подробности смотрите в соответствующих разделах:
Честно сказать, я не знаю, какой вариант здесь правильный.
В общем из двух альтернатив (обновлять или устанавливать заново) я склоняюсь ко второму варианту, хотя он и более трудоемкий. И если вы решитесь на такое, рискну предложить вам следующий алгоритм работы.
Список литературы и ссылки.
- В.А.Костромин, "Linux для пользователя", изд. БХВ-Петербург, 2002 год, серия "Самоучитель", 650 стр.