Библиотека сайта rus-linux.net
Об инсталляции Линукс в минимальной конфигурации
В.А.Костромин
1. Введение
Какой бы из дистрибутивов Линукс мы ни взяли, будь то Red Hat, Caldera, Slackware или Debian, он занимает на установочном CD-ROM сотни мегабайт. И в ходе стандартной процедуры инсталляции устанавливается не только сама операционная система, но еще и масса разнообразного программного обеспечения, покрывающего практически все потребности некоего "среднего" пользователя. Только каждый из нас, устанавливающих на своем персональном компьютере ОС Линукс, сильно отличается от того понятия о среднем пользователе, который, по-видимому, имеется у разработчиков дистрибутивов. Ладно еще, если у Вас диск немерянной емкости. А мне пришлось недавно устанавливать Линукс на диск объемом чуть больше 400 Мегабайт и лишнее ПО стало просто проблемой. Тогда я и занялся экспериментами по установке Линукс на маленький диск. Результатами этих экспериментов я и хочу поделиться в этой статье.
Сначала расскажу о том, как мне удалось установить Линукс на маленький диск, а потом уж попытаюсь сделать кой-какие выводы, исходя из полученного опыта.
2. Конфигурация компьютера
Итак, получил я недавно бета-версию ASPLinux для тестирования. Экспериментировать я решил на компьютере Hewlett Packard Vectra XU 6/150 с процессором Pentium Pro 150 MHz, который имел 64 MB ОЗУ и на котором уже была установлена ОС Windows NT Workstation 4.0. При этом компьютер этот был у меня рабочим, так что уничтожать накопленную на нем информацию и переустанавливать ОС полностью я не собирался. Поэтому я выделил на диске раздел и начал устанавливать туда ASPLinux Release Candidate 3. Как именно был разбит диск, Вы можете видеть из следующего вывода команды sfdisk (можно, кстати, отметить, что это был SCSI-диск):Disk /dev/sda: 259 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 63 64- 514048+ 6 FAT16 /dev/sda2 64 258 195 1566337+ 5 Extended /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty /dev/sda5 64+ 122 59- 473886 83 Linux /dev/sda6 128 258 131 1052257+ 7 HPFS/NTFS /dev/sda7 123+ 127- 5- 40099+ 82 Linux swap
3. Мучения с программой инсталляции ASPLinux Release Candidate 3
Надо сказать, что я хотел установить среду KDE, к которой к тому времени уже привык и которая мне нравится больше, чем GNOME. В начале процедуры инсталляции я выбрал варианты "Офис" (требуется 927 МБ, у меня имеется 462) и "Выборочная установка" и начал выбирать отдельные пакеты. Поскольку места в Linux-разделе у меня мало, это был очень длительный процесс. Я задавал некоторую совокупность пакетов, инсталлятор сообщал, что надо дополнительно установить еще что-то, а после того, как я разрешал установить те пакеты, которые нужны для выбранных, оказывалось, что места на диске недостаточно, и приходилось снова возвращаться к выбору пакетов.
После первых неудачных попыток уложиться в выделенное пространство я отключил вообще все, что посчитал возможным, включая многие пакеты в группе Base и KDE (решив, что все необходимое программа установки должна выбрать сама). В результате в обьем вроде бы влез, но тик в тик. Вся эта возня с выбором пакетов заняла, однако, часа 3. Однако, хотя программа установки и сообщила перед началом инсталляции пакетов, что места хватает, сам процесс установки завершился сообщением, что места все же не достаточно.
Начал снова. На сей раз с целью сокращения времени на выбор пакетов сразу отключил вообще все группы полностью, включая Base и X, оставил только KDE (решив, что все необходимое программа установки должна выбрать сама).
После разрешения зависимостей пересмотрел состав устанавливаемых пакетов и решил, что надо добавить:
в Base: dev console-tools findutils groff gzip kernel less man mount net-tools tar lilo linuxconf util-linux в DOS /Windows Connectivity samba-client в Development make man-pages texinfo в Networked Workstation ftp Netscape-Communicator telnet в X-Windows - фонты Koi8-R и cyrillic - freetype и в KDE добавил KDE-office
(Кстати, совершенно непонятно, почему kernel не подключается при разрешении зависимостей, что ядро не нужно ни одному из пакетов?).
Пошла подготовка диска. Потом программа сообщила, что места на диске недостаточно (хотя по сообщению при выборе пакетов - хватало).
Начинаем заново. Снова провел уже описанную процедуру выбора пакетов через выключение всего, кроме KDE, и разрешения зависимостей. Добился того, что требуется 412 Мб на диске. На этот раз, хотя установка завершилась вроде бы успешно, но при перезагрузке появилось сообщение:
"Ошибка установки загрузчика Ошибка привязки загрузчика ОК"
Снова запустил установку ASPLinux. На этот раз выбрал вариант вообще без X Window (и, естественно, уже никаких KDE). При разрешении зависимостей кому-то потребовались фонты для X, но установка ASP Loader прошла в целом успешно. И загрузка тоже. В текстовом режиме, естественно. Получаем командную строку.
Тут я решил проанализировать, какие пакеты оказались установлены в результате. Запустил команду
[root]# rpm -qa > installed-rpm.txtПросмотр файла installed-rpm.txt показал, что были установлены пакеты
AbiSuite XFree86-SVGA aalib gimpи много чего еще, чего я не заказывал, и что не было обусловлено необходимостью разрешения взаимозависимостей.
Я занялся удалением лишних пакетов и мне удалось без ущерба для работоспособности системы удалить уже упомянутые и еще следующие пакеты:
kernel-smp kernel-pcmcia gimp-perl gnome-print gpgp gdk-pixbuf libunicode bc db2 sendmailТаким образом я довел объем занимаемого пространства на диске до 227 МБ. Уверен, что при более тщательном отборе пакетов можно добиться того, что минимальная конфигурация Линукс для консольного режима работы поместится на 200 или даже 100 МБ.
4. Минимальная конфигурация Red Hat 6.2 Cyrillic Edition
Поскольку мне все же хотелось получить не только текстовый, но и графический режим, я вынужден был вернуться к дистрибутиву Red Hat 6.2 Cyrillic Edition. Но, после описанных Выше злоключений с установкой ASPLinux (который мне все же больше нравится, потому что использует уже 4-ую версию X Window и новую версию KDE, так что я с нетерпением жду выхода финальной версии) я после установки решил провести удаление тех пакетов, которые мне были не нужны. Вот список тех пакетов, которые в результате остались в моей системе:
setup-2.1.8-1 filesystem-1.3.5-1 basesystem-6.0-4 ldconfig-1.9.5-16 XFree86-SVGA-3.3.5-3bc glibc-2.1.3-15 shadow-utils-19990827-10 mktemp-1.5-2 termcap-10.2.7-9 libtermcap-2.0.8-20 bash-1.14.7-22 MAKEDEV-2.5.2-1 Mesa-3.2-2 ncurses-5.0-11 info-4.0-5 ORBit-0.5.0-3 SysVinit-2.78-5 X11R6-contrib-3.3.2-11 chkconfig-1.1.2-1 fileutils-4.0-21 utempter-0.5.2-2 XFree86-3.3.6-20 gawk-3.0.4-2 textutils-2.0a-2 cracklib-2.7-5 cracklib-dicts-2.7-5 pwdb-0.61-0 mingetty-0.9.4-11 sed-3.02-6 e2fsprogs-1.18-5 console-tools-19990829-10 procps-2.0.6-5 vixie-cron-3.0.1-40 modutils-2.3.9-6 popt-1.5-0.48 logrotate-3.3.2-1 sysklogd-1.3.31-16 psmisc-19-2 which-2.9-2 initscripts-5.00-1 glib-1.2.6-3 pam-0.72-6 sh-utils-2.0-5 bzip2-0.9.5d-2 zlib-1.1.3-6 rpm-3.0.4-0.48 grep-2.4-3 XFree86-libs-3.3.6-20 XFree86-xfs-3.3.6-20 chkfontpath-1.7-2 XFree86-75dpi-fonts-3.3.6-20 XFree86-cyrillic-fonts-3.3.6-20 ed-0.2-13 XFree86-cyrillic-fonts-collection-75dpi-0.1-2 XFree86-cyrillic-fonts-cronyx-75dpi-0.1-3 Xaw3d-1.3-21 Xconfigurator-4.3.5-1 anacron-2.1-6 ash-0.2-20 at-3.1.7-14 audiofile-0.1.9-3 authconfig-3.0.3-1 autorun-2.61-1 bdflush-1.5-11 bind-utils-8.2.2_P5-9 binutils-2.9.5.0.22-6 control-panel-3.13-1 crontabs-1.7-7 dev-2.7.18-3 diffutils-2.7-17 esound-0.2.17-2 etcskel-2.3-1 findutils-4.1-34 freetype-1.3.1-5 ftp-0.16-3 fvwm2-2.2.4-4 fvwm2-icons-2.2.4-4 gd-1.3-6 gdbm-1.8.0-3 getty_ps-2.0.7j-9 ghostscript-5.50-1 ghostscript-fonts-5.50-1 gimp-1.0.4-7 gimp-libgimp-1.0.4-7 glib10-1.0.6-6 gmp-2.0.2-13 gnome-audio-1.0.0-8 gnome-libs-1.0.55-12 gpm-1.19.1-1 groff-1.15-8 groff-perl-1.15-8 gtk+-1.2.6-7 gtk+10-1.0.6-6 gv-3.5.8-9 gzip-1.2.4a-2 hdparm-3.6-4 helptool-2.4-9 imlib-1.9.7-3 indexhtml-6.2-1 ispell-3.1.20-25 kbdconfig-1.9.2.4-1 kdeadmin-1.1.2-6 kdebase-1.1.2-33 kdebase-lowcolor-icons-1.1.2-33 kdegraphics-1.1.2-3 kdelibs-1.1.2-15 kdemultimedia-1.1.2-7 kdenetwork-1.1.2-13 kdesupport-1.1.2-12 kdeutils-1.1.2-4 kernel-2.2.14-6.1.1 kernel-utils-2.2.14-6.1.1 kernelcfg-0.5-5 korganizer-1.1.2-3 kpackage-1.3.10-3 kudzu-0.36-2 ld.so-1.9.5-13 less-346-2 libc-5.3.12-31 libgr-2.0.13-23 libgr-progs-2.0.13-23 libjpeg-6b-10 libpng-1.0.5-3 libstdc++-2.9.0-30 libtiff-3.5.4-5 libungif-4.1.0-4 libxml-1.8.6-2 lilo-0.21-15 redhat-release-6.2-1 linuxconf-1.17r2-6 losetup-2.10f-1 lpr-0.50-4 lynx-2.8.3-2 mailcap-2.0.6-1 man-1.5h1-1 mkbootdisk-1.2.5-3 mkinitrd-2.4.1-2 mkxauth-1.7-12 mount-2.10f-1 mouseconfig-4.4-1 mpage-2.4-8 mtools-3.9.6-3 net-tools-1.54-4 netcfg-2.25-1 netscape-common-4.72-6 netscape-communicator-4.72-6 newt-0.50.8-2 nfs-utils-0.1.6-2 ntsysv-1.1.2-1 passwd-0.64.1-1 patch-2.5-10 perl-5.00503-10 pidentd-3.0.10-5 pnm2ppa-0.8.9pre1-1 portmap-4.0-19 post-rhinstall-cyr-0.2-7 printtool-3.44-1 pygtk-0.6.4-1 python-1.5.2-13 pythonlib-1.23-1 qt1x-1.45-3 readline-2.2.1-6 rhs-printfilters-1.63-1 rootfiles-5.2-5 rsh-0.16-12 rxvt-2.6.1-8 samba-client-2.0.6-9 samba-common-2.0.6-9 sash-3.4-2 screen-3.9.5-4 sendmail-8.9.3-20 setserial-2.15-3 setuptool-1.2-5 slang-1.2.2-5 tar-1.13.17-3 tcl-8.0.5-35 tclx-8.0.5-35 tcsh-6.09-4 telnet-0.16-6 time-1.7-9 timeconfig-3.0.3-2 timetool-2.7.3-1 tix-4.1.0.6-35 tk-8.0.5-35 tkinter-1.5.2-13 tksysv-1.1-3 tmpwatch-2.2-1 unzip-5.40-2 urw-fonts-2.0-4 usermode-1.20-1 util-linux-2.10f-7 wmconfig-0.9.8-1 words-2-12 xinitrc-2.9-1 xpaint-2.4.9-10 xpdf-0.90-4 xpm-3.4k-2 zip-2.3-4 mc-4.5.42-10Как сообщает команда df, в совокупности все перечисленные пакеты занимают на диске чуть больше 300 МБ:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda5 458894 307308 127892 71% /Я уверен, что и это еще далеко не предел, поскольку я оставил в системе такие пакеты, как Netscape, lynx, xpaint, samba, telnet и другие, которые не являются абсолютно необходимыми для работы на изолированном компьютере. Не говоря уже о том, что интегрированная графическая среда KDE не является минимально необходимым вариантом интерфейса пользователя для графического режима.
5. Некоторые умозаключения по результатам злоключений
1. Существует принципиальная возможность установки ОС Линукс на жесткий диск (или на раздел диска) объемом не более 300 Мегабайт, а для работы только в консольном (текстовом) режиме - даже на раздел в 200 Мб. Только пока программы инсталляции этого не позволяют.2. Хотя и говорится во многих статьях, что одно из достоинств ОС Линукс заключается в свободе выбора для пользователя, разработчики процедур инсталляции (хоть выше речь шла только об ASPLinux, но то же самое относится и к Red Hat 6.2, и к Black Cat 6.2) сильно ограничивают свободу выбора на этапе установки. Не знаю, прочитают ли они этот мой материал, но очень хотелось бы среди вариантов установки видеть два дополнительных варианта: "Минимальная конфигурация для текстового (консольного) режима" и "Минимальная конфигурация для графического режима". Это позволит не только устанавливать Линукс на маленькие диски, но и расширит возможности формирования именно той конфигурации системы, которая нужна конкретному, а не абстрактному "среднему" пользователю.
3. Развивая дальше только что сформулированное предложение, можно
рассмотреть целесообразность следующего примерного алгоритма проведения
инсталляциии системы.
Сначала задать вопрос: "Будете устанавливать систему в текстовом
режиме или в графическом режиме?". После ответа на этот вопрос предложить
следующие варианты:
- "Минимальная конфигурация"
- "Типовая (средняя или быстрая) инсталляция"
- "Выборочная инсталляция"
- "Upgrade системы"
Можно, конечно, организовать и дальнейшее ветвление: сервер и рабочая станция (=персональный компьютер) или KDE, GNOME, fvwm, например. Естественно, что все это ветвление должно быть организовано после того, как пользователь сообщит программе инсталляции, что хочет делать какой-то выбор.
4. А пока разработчики дистрибутивов ставят Вам все, что им взбредет
в голову, имеет смысл после инсталляции системы пересмотреть состав
установленных пакетов с помощью команды rpm -qa и удалить те пакеты,
которые Вам вообще не нужны, или которые Вы пока не предполагаете
использовать. Это позволит Вам примерно вдвое сократить объем дискового
пространства, занимаемого Вашей системой. А если в будущем потребуется
какой-то пакет, его не трудно будет поставить заново с Вашего дистрибутивного
CD-ROM.
Конечно, начинающий пользователь не всегда может воспользоваться этим советом
просто потому, что по названиям rpm-пакетов трудно понять, когда и зачем этот
пакет нужен. На этот случай я могу порекомендовать (по крайней мере пользователям
Red Hat и его клонов) приобрести книгу
Red Hat Linux 6.2. Учебный курс,
в которой приведен список пакетов и данные об их назначении.
Кстати, рекомендации по поводу выбора минимального набора пакетов есть
в только что появившейся на русском языке книге Gerhard Mourani
"Безопасность
и оптимизация Linux. Редакция для Red Hat."
Перевод Е. Воскресенского.
Правда рекомендации эти относятся к установке Линукс на сервер, но
просмотреть все же полезно.
5. Представленный в разделе 4 список пакетов интересен еще и с той точки зрения, что именно включенные в него программы стоит в первую очередь изучать начинающим пользователям ОС Линукс.
6. Приведенные мной цифры по минимально необходимому объему дискового пространства, конечно, очень далеки от реальных минимумов. Ведь существуют дистрибутивы, которые помещаются на одной или нескольких дискетах. И я постараюсь поделиться с Вами впечатлениями о таких дистрибутивах в одной из своих будущих заметок. Но само существование таких дистрибутивов наталкивает на мысль о том, что Линукс в принципе очень нетребователен к конфигурации компьютера. Поэтому я постараюсь (по мере накопления опыта) продолжить тему установки Линукс на компьютеры с ограниченными ресурсами.
Как отклик на эту мою статью я получил следующее письмо:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Date: Вс, 27 май 2001 01:26:19 From: Theodore Alexandrov <theo@pdmi.ras.ru> Subject: o Vashe' stat'e --------------------------------------------------------------------------- Здравствуйте, Еще раз увидел Вашу статью "ОС Linux на Вашем персональном компьютере". Но позвольте, не надо категоричных выводов! Даже если отбросить кому-то неподходяшие методы "make;make install" без установки кучи документации т.д. т.п., поставить консольную версию на 100Mb не составляет особых забот. Речь идет не о полноценной рабочей машине, а том, что можно поставить, пользуясь программами установки из дистрибутива. Отключив дополнительные области применения, Debian r2.0 ставится на 90Mb (понятное дело, сам ставил, причем без проблем). С необходимым для компиляции ядра (без сорсов, их надо отдельно считать), (libs,make,auto*,gcc,.h) ~ 120Mb. Это будет машина с принтером (lpr), dial-up server (pppd,mgetty), exim, bash, nvi. Да, не стал бы писать, но статья появилась на linux-ve.chat.ru. TheodoreМой комментарий: я полностью согласен с автором письма по поводу того, что можно поставить Линукс на 100 Мб. Но смысл моего предложения заключается в том, что такую минимальную конфигурацию должна позволять осуществить программа инсталляции. И чтоб ее мог сделать любой "чайник" (вроде меня) без особых усилий. Ведь, как заметил не помню кто, дистрибутив - это не что иное как программа инсталляции плюс набор устанавливаемых пакетов. Так пусть программа установки молча ставит самый-самый минимум, а все остальное - только по прямому указанию пользователя.