Citkit, 5 июля 2005 г
Archlinux обладает некоторыми особенностями, ставящими его в уникальное положение в ряду прочих дистрибутивов. Что я и надеюсь обосновать в настоящей заметке.
Общие сведения
Одна из превалирующих тенденций Линукс-дистрибутивостроения последних лет - распадение дистрибутивов на две идеологически различные линии. С одной стороны, это - пакетные дистрибутивы, развитие которых идёт по пути быстроты развёртывания и упрощения настройки. С другой - дистрибутивы Source Based, генеральной линией которой является рост гибкости настроек и их индивидуализации.
За все в этой жизни приходится платить. И расплатой за простоту установки пакетных дистрибутивов является их статичность и даже, я бы сказал, косность. А дистрибутивы Source Based для полной реализации заложенной в них гибкости требуют - нет, даже не более высокой квалификации пользователя, а в первую очередь большого резерва времени, достаточно мощной машины и, что немаловажно в наших условиях, хорошего (и дешёвого) канала связи.
И не потому ли начинают появляться дистрибутивы промежуточного типа, стремящиеся к оптимальному сочетанию пакетной простоты и "исходнячной" гибкости? А оптимальное, напомним себе, - это отнюдь не синоним идеального, а, напротив, скорее, наименее плохое из всего возможного.
Типичным примером такого промежуточного дистрибутива и является Archlinux. Он возник относительно недавно - версия за номером 0.1 датируется 2002/03/11, генетически отпочковавшись от CRUX - весьма своеобразной системы, представляющей собой предельно минималисткий, но полнофункциональный дистрибутив: в 200 Мбайт iso-образа его создатель, Пер Лиден, умудрился утрамбовать не только Base Linux, но и оконную систему X, оконный менеджер WindowMaker, основные приложения для консоли и Иксов. Что достигается жесточайшим усекновением любого балласта - от излишней, по мнению Пера, документации (info- и html-страниц) до отказа от поддержки NLS в базовой комплектации.
Впрочем, CRUX - совсем отдельная история: это скорее конструктор для построения системы в соответствие с собственными потребностями, нежели готовый к употребленпию дистрибутив. Который поэтому лег в основу ряда потомков, одним из которых (впрочем, весьма отдалившимся от прототипа) и является Archlinux. Он разрабатывается интернациональной командой во главе с Джаддом Вайнетом (Judd Vinet), официальный сайт проекта - http://www.archlinux.org. Как и положено, дистрибутив свободно доступен по ftp - в виде ISO-образов CD и отдельных пакетов. Таким образом распространяется стабильная его версия (stable
), текущая же (current
), как и положено, находится в стадии перманентной разработки.
Образ установочного диска стабильной версии существует в двух вариантах - полном (500- 600 мегабайт, в зависимости от версии) и базовом (около 200 Мбайт). Первый представляет собой полнофункциональный дистрибутив, включающий, кроме таких краеугольных компонентов, как ядро, gcc
, glibc
иже с ними, также систему X, KDE, KOffice, необходимый набор графических и мультимедийных приложений и средств администрирования.
Базовый вариант полностью отвечает своему названию, представляя собой Base Linux почти в чистом виде. В отличие от CRUX, включение в базовую комплектацию gettext
обеспечивает поддержку NLS "из коробки". Хотя в отношении излишней документации Archlinux столь же безжалостен, обнаруживая в своем составе исключительно традиционные man-страницы.
Стабильная версия Archlinux выходит достаточно редко - примерно раз в полгода, и потому на произвольный момент времени может показаться несколько устаревшей по набору пакетов. Однако разрабатываемая (current) версия позволяет легко актуализировать систему (правда, только при подключении к Сети).
Прекомпилированные пакеты, доступные в рамках проекта Archlinux, делятся на две части - официальную (уже упоминавшуюся current) и, так сказать, неофициальную (extra). Число официальных пакетов ограничено, и ни малейшей тенденции к разрастанию не обнаруживает - это принципиальная установка разработчиков. Зато обновление официальной части осуществляется чрезвычайно оперативно - через считанные дни (а иногда даже часы) после выхода свежей версии соответствующего пакета.
Многое из недостающего в current можно отыскать среди пакетов ветки extra. Они не входят непосредственно в состав дистрибутива и собираются независимыми разработчиками-энтузиастами (контрибьюторами). Поэтому состав их относительно случаен: каждый из таких контрибьюторов вносит в репозиторий свои любимые программы.
Число неофициальных пакетов также не поражает воображения, однако и их обновление весьма оперативно: здесь сборки самых свежих версий интегрированных сред KDE и GNOME, их приложений, и многого другого, нужного в обыденной жизни.
Короче говоря, репозиторий Archlinux по насыщенности последними достижениями Open Sources далеко уступает Debian, Sysiphus, distfiles FreeBSD или Gentoo. Однако, как я покажу позднее, сила его - не в этом. А недостаток пакетов, требуемых для какой-то специфической задачи, очень легко восполняется. И компенсируется продуманностью, сбаллансированностью и отлаженностью.
Кроме образов дисков и пакетов, немаловажным компонентом дистрибутива является документация. Разработчики не предназначали свое создание для совсем уж начинающих пользователей, и потому официальный Archlinux Documentation (доступный, кроме англоязычной версии, также на немецком и французском языках) отличается изрядным лаконизмом. Впрочем, для пользователя, хотя бы в общих чертах знакомого с общими понятиями Linux (такими, как дисковые разделы, файловые системы, управление пакетами и сценарии инициализации), содержащихся в нем сведений более чем достаточно для установки системы и начала работы. А уж дистрибутив-специфичные особенности (такие, как система управления пакетами или настройка стартовых служб) описаны в документации исчерпывающе.
Неофициальная документация включает в себя весьма информативную подборку часто задаваемых вопросов (краткий FAQ есть и в официальной части) и пару How-to, посвященных колоризации процесса загрузки и созданию т.н. bootsplash. Впрочем, по откровенному признанию автора второго документа, оба они рассчитаны на пользователей, располагающих "some time to kill"...
Прелюдия к установке
Знакомство с любым дистрибутивом начинается с его установки. Однако я сознаю, что пока не убедил читателя - стоит ли ему выполнить эту процедуру в отношении Archlinux. И потому опишу вкратце ее основные особенности.
Оба варианта установочного диска Archlinux являются загрузочными (кого нынче этим удивишь?). И для получения впечатления от системы достаточно любого - более того, по причинам, которые станут ясны в дальнейшем, я бы отдал явное предпочтение базовому варианту. Тем паче, что качать 200 Мбайт быстрее, чем 600 (еще бы).
Кое-что о системных требованиях. Все пакеты дистрибутива оптимизированы под абстрактный процессор i686 (сборка с флагами gcc
-O2
и -march=i686
). Так что попытка установить его на машине с процессором ниже Pentium Pro успехом не увенчается. То есть для гальванизации устарелого "железа" система не подходит. С парой оговорок: во-первых, существует неофициальная версия, собранная для процессоров семейства i586, и, во-вторых, при наличии доступа к Arch-машине собрать комплект под любой x86-совместимый процессор, поддерживаемый текущей версией gcc
, не составит большого труда.
Зато, ввиду все той же ориентации на пользователя, хотя бы в минимальном объеме знакомого с Linux, прекомпилированное ядро, загружаемое с установочного диска по умолчанию, поддерживает не только широкий спектр оборудования (вплоть до ATA RAID), но и множество типов разделов (в частности, программные RAID-массивы от линейного до уровня 5, систему логических томов LVM) и файловых систем (ext2, ext3, reiserfs, XFS). Благодаря этому, при наличии на машине какого-либо дистрибутива Linux, в процессе установки можно обращаться к существующим данным - конфигурационным файлам, документации (в том числе, подгрузив соответствующий шрифт, и русскоязычной), архивам программ и т.д.
Уяснив все это (а кое-что из сказанного может пригодиться при инсталляции), вставляем диск (для определенности - базовый, в дальнейшем я буду исходить из этого умолчания) в привод и перезагружаемся, определив по ходу дела соответствующие установки в BIOS. Через считанные секунды на экране появляется приглашение boot:
, позволяющее при необходимости задать параметры загрузки, как то: загрузку ядра с поддержкой SCSI ("умолчальное" ядро с CD поддерживает только IDE-интерфейс), или загрузку уже установленной системы Archlinux (что позволяет использовать установочный CD в качестве большой rescue-дискеты). Впрочем. на данном этапе все это вряд ли актуально. поэтому просто жмем Enter для продолжения загрузки (сама по себе она не продолжится, ожидая реакции пользователя).
Несмотря на обилие включенных в загружаемое ядро опций, старт системы происходи быстро. И по завершении его мы наблюдаем приглашение командной строки оболочки ash
(несколько, однако, функционально расширенной - с автодополнениями,`историей команд и прочими облегчающими жизнь мелочами). Автоматически (без запроса пароля) авторизовавшись в качества суперпользователя, мы получаем в свое распоряжение еще три (кроме текущей) виртуальные консоли. Для активизации любой достаточно обычной комбинации клавиш Atl+F2[F3,F4] и нажатия клавиши Enter. А перейдя на пятую консоль, в последующем можно будет видеть вывод сообщений о ходе установки.
Одна из дополнительных консолей потребуется сразу же: на нее можно (и даже, я сказал бы, нужно) загрузить с CD руководство пользователя - текстовую копию официальной html-документации с сайта проекта:
$ less /arch/archdoc.txt
И, следуя мудрому правилу POSIX'ивистов, внимательно изучить - оно, как я уже отмечал, сеет разумное, доброе, вечное.
В частности, из этого руководства можно узнать, что Archlinux снабжен собственным инсталлятором, позволяющим легко и быстро выполнить установку, не теряя при этом гибкости. Запускается инсталлятор командой
$ /arch/setup
в ответ на которую выводится синенькая псевдографическая панель главного меню, навевающего воспоминания о Slackware. Врочем, разработчики сами подчеркивают, что Slackware была вторым, после CRUX, источником идей, реализованных в Archlinux.
Однако главное меню Arch'евского установщика еще более лаконично, и содержит лишь семь пунктов:
- подготовка диска;
- выбор пакетов;
- установка пакетов;
- установка ядра;
- конфигурирование системы;
- установка загрузчика;
- выход.
Рассмотри эти пункты подробнее.
Подготовка диска
Очевидно, что начинать следут с первого по порядку пункта. Открывающееся по его выбору меню позволяет осуществить следующие действия: создать дисковые разделы, затем - смонтировать их с предварительным созданием файловых систем, отказаться от того и другого, и, наконец, вернуться в главное меню.
Создание разделов может быть выполнено в автоматическом (при этом задействуется весь диск с уничтожением его содержимого) или полу-ручном режиме - посредством утилиты cfdisk
). Отказавшись от создания разделов, можно использовать ранее существующие. Однако подготовить разделы полностью вручную (в другой консоли) не удастся - вызов команды cfdisk
при этом дает сообщение об ошибке (а, скажем, программы fdisk
в установочном наборе команд просто не предусмотрено).
При создании файловых систем сначала запрашивается раздел, отводимый под своппинг, потом - тот, на котором планируется разместить корневую файловую систему и предлагается выбор ее типа - ext2, ext3 или reiserfs (последний отмечается по умолчанию), с некоторых пор также и XFS. Далее при желании (и наличии разделов) можно заказать создание и монтирование таких ветвей файлового древа, как /boot
, /usr
, /var
, /home
. Интересно, что, как станет ясно в дальнейшем, ветвь /tmp
по умолчанию предлагается разместить на tmpfs - при обычных ныне объемах памяти вполне оправданное, я бы даже сказал - прогрессивное, решение.
На процесс разбиения диска и создание файловых систем при инсталляции накладываются некоторые ограничения. Так, не предусмотрено способа создания второго swap-раздела, что обычно практикуется, если машина несет более одного физического диска. Нет возможности разместить файловые системы на программном RAID-массиве или на LVM.
Впрочем, все эти ограничения в дальнейшем легко обходятся, особенно если ограничиться базовым набором пакетов (и это - первый довод в пользу выбора базового варианта установочного CD). Как будет сказано позднее, вся базовая установка Archlinux укладывается примерно в 400 Мбайт. Так что для начала можно ограничиться полугигабайтным корневым разделом, а по окончании инсталляции (после перезагрузки) вынести на логику или на программный RAID все желаемые ветви файловой системы (все равно, размещение на них корня файлового древа - идея не из самых здоровых).
Ну и обзавестись вторым разделом подкачки после первого же рестарта - никаких трудов не составит (я уже неоднократно говорил, что Archlinux рассчитан на тех пользователей, которые знают, как его создают и активизируют - и, надеюсь, читатели этой книги, ознакомившиеся с главой 9, в их числе).
В случае единственного диска, отдаваемого в распоряжение Archlinux целиком, можно предложить такую схему разметки диска:
Корневой раздел 256 Мбайт
/usr 4096 Мбайт
/opt 2048 Мбайт
/var 1024 Мбайт
/var/abs 1024 Мбайт
/var/cache/pkg 1024 Мбайт
/var/cache/src 1024 Мбайт
/home сколько осталось
Назначение корневого каталога, каталогов /usr
и /home
понятно. Необходимость вынесения каталога /opt
в отдельный раздел обусловлена тем, что в Archlinux он служит для помещения таких объемных пакетов, как Qt, KDE, Gnome, OpenOffice, Mozilla. Обособление каталога /var
призвано предотвратить возможность переполнения корневой файловой системы всякого рода системными сообщениями. Ну а такие ветви каталога /var
, как /var/abs
, /var/cache/pkg
, /var/cache/src
, предназначены для портоообразной системы ABS (Archlinux Building System), скачиваемых из Сети бинарных пакетов (в частности, при процедуре синхронизации) и исходников портированных программ, соответственно; почему их также целесообразно разместить на отдельных разделах. Таким образом мы воплощаем в жизнь принцип отделения легко восстановимых частей файловой системы от того, что было скачано из Сети непосильным трудом...
Кроме этого, при использовании в качестве загрузчика GRUB (а именно так принято в Archlinux по умолчанию) разработчики его настоятельно рекомендуют вынесение на отдельный раздел (размером в пару десятков мегабайт) каталога /boot
. Если же вспомнить о необходимости (ну, пусть желательности, как станет ясно из следующего абзаца) еще и раздела для своппинга, становится ясным, что первичных разделов на все про все явно не хватит. Так что первичные разделы следует отвести только под /boot
и корень, а под все остальные ветви файлового древа задействовать логические разделы.
Обратим внимание, что в предложенной схеме нет места для раздела под каталог /tmp
: как уже было сказано, в Archlinux по умолчанию в эту точку монтируется файловая система в оперативной памяти - tmpfs. А поскольку для каталога /tmp
при определенных условиях существует вероятность быстрого заполнения всякими продуктами жизнедеятельности - становится ясной желательность раздела подкачки даже при очень большом объеме оперативной памяти. Ведь tmpfs использует как физическую, так и виртуальную память.
Завершив заказ точек монтирования и файловых систем, следует (обязательно через пункт Done) вернуться в меню подготовки диска. Собственно, в этот момент реально и произойдет форматирование разделов, создание точек монтирования и собственно монтирование файловых систем. В этом легко убедиться командой mount
в одной из виртуальных консолей до и после выхода из данного пункта меню. В последнем случае мы увидим, что все заказанные нами файловые системы окажутся смотированными в указанные подкаталоги каталога /mnt
, выступающего в качестве будущего корня (/mnt/boot
, /mnt/usr
и так далее).
Выбор и установка пакетов
Теперь можно вернуться в главное меню и перейти к пункту выбора пакетов. Впрочем, при использовании базового CD особо напрягаться по этому поводу не стоит: перед нами предстают только компоненты Base Linux в весьма пуристическом подборе. Единственное, что тут можно урезать - это bin86
, если не предполагается загрузка через Lilo (ну и сам Lilo, разумеется - умолчальным загрузчиком в Archlinux выступает GRUB), инструментарий для неиспользуемых файловых систем (например, JFS) и программных RAID. А также - vim
, если пользователь испытывает стойкое отвращение к этому редактору. Да и любителям vim
все равно придется его потом пересобирать - штатно он собран без поддержки langmap
, что весьма осложняет жизнь в кириллическом окружении. Только нужно учесть, что другого редактора при базовой установке после перезагрузки у нас не будет - до тех пор, пока мы не установим или не соберем его собственноручно.
Если же установка идёт с CD в полном варианте - подумать стоит. Потому как тогда доступными оказываются не только Base Linux, но и Иксы, и WindowMaker, и вообще очень многое из того, что требуется для минимально комфортной работы (некоторые решат - что вообще все). Правда, установлены они будут из прекомпилированных бинарников, собранных согласно представлениям авторов дистрибутива. В частности, links
не будет поддерживать графику, vim
- langmap, и так далее. Впрочем, как я уже сказал, все это определяется задачами (да и исправимо в дальнейшем).
Кроме того, полная установка текущей версии дает большое количество устаревших пакетов (относительно устаревших - заведомого старья в Archlinux все равно не найти). Что, впрочем, также поправимо - и при некоторых условиях, прямо сейчас. Я забыл сказать, что при запуске инсталлятора пользователю предлагается выбор метода установки - с CD или через FTP. И если имеется хороший коннект, второй вариант позволяет сразу же установить пакеты ветки current
. Правда, удаленная установка работает только через всамделишнюю сеть - использование ppp-соединения для этой цели не предусмотрено (а оно нам нужно?).
Установка пакетов после из выбора осуществляется со страшной научно-фантастической скоростью - на весь базовый набор уходят считанные минуты (да и разумный комплект с полного CD переносится не намного дольше). После этого в нашем распоряжении оказывается практически готовая система, в которой не хватает только ядра и загрузчика.
Установка ядра
Установка ядра и будет следующим шагом. Здесь возможны четыре варианта: выбор из двух прекомпилированных ядер - одно с поддержкой IDE-устройств, второе - также и SCSI, сборка ядра собственного и отказ от установки ядра вообще (позднее я скажу, при каких обстоятельствах это может иметь резон).
Установить прекомпилированное ядро - самый простой (и, при отсутствии специфических требований, разумный) вариант. Не скажу за scsi-ядро, не пробовал по причине отсутствия соответствующего "железа", а вот ядро ide собрано более чем разумно: включена поддержка всего, что есть в загрузочном ядре с CD (ATA RAID и RAID программный, LVM, все возможные файловые системы), плюс доступны USB-устройства (флэш-накопители заработают без дальнейших телодвижений, а USB-мышь потребует только установки gpm
и несложного конфигурирования), эмуляция ide-scsi (для записи CD-R/RW), звуковые карты подключены в качестве модулей.
Конечно, конфигураиця ядра, как обычно в таких случаях, получается несколько избыточной. Но это вполне компенсируется быстротой установки и ее простотой: кроме собственно записи загружаемого образа в каталог /mnt/boot
(под именем vmlinuz
- в дальнейшем это будет важно), инсталлятор также установит в должные места все наличные модули и необходимые заголовочные файлы. Правда, исходников ядра при этом в /usr/src
не обнаружится. Но это - не беда, Archlinux использует каноническое ядро vanilla, без всяких дистрибутив-специфичных патчей, которое легко получается с http://www.kernel.org. Да и на диске имеется - в качестве отдельного тарбалла.
Тем не менее, если все-таки есть желание сконфигурировать ядро собственное - инсталлятор предоставляет и такую возможность. По выборе соответствующего пункта из меню появляется серия панелей с исчерпывающими инструкциями, как именно это сделать. После чего ядро автоматически распаковывается в каталог /mnt/usr/linux
- остается только
- перейти в свободную консоль,
- подмонтировать необходимые файловые системы, такие как devfs и procfs:
- выполнить операцию смены корня:
- зайти в дерерво исходников относительно нового корня:
- сконфигурировать ядро обычным способом:
- и собрать его столь же обычной последовательностью команд:
$ mount -t devfs devfs /mnt/dev ;
$ mount -t proc proc /mnt/proc
$ chroot /mnt /bin/bash
$ cd /usr/src/linux
$ make menuconfig
$ make dep && make bzImage && \
make modules modules_install
После чего следует вернуться в установочное окружение командой exit
, перейти обратно в консоль с запущенным инсталлятором и на соответствующей панели нажать OK (обязательно). Прочие действия - копирование образа ядра (под именем vmlinuz
), модулей и заголовочных файлов, как и при установке прекомпилированного ядра, выполнятся сами собой.
Я уже говорил, что ядро в текущей версии Archlinux может иметь, по масштабам ядростроителей, весьма преклонный возраст. Потому возникает резонное желание - не только собрать собственноручно сконфигурированное ядро, но и обновить его сразу до актуального состояния. При доступности Сети (и хорошем коннекте) это не проблема. Но тягу к новизне можно удовлетворить и в домашних условриях - если, конечно, исходники новой версии скачаны и размещены на доступном из установочного окружения носителе (например, разделе ранее установленного Linux). Правда, вот эту-то процедуру придется выполнить руками от начала и до конца.
Итак, отказываемся от установки ядра (именно на сей предмет и предусмотрен четвертый пункт соответствующего меню), переходим в свободную консоль, монтируем нужный раздел или иной носитель, типа USB-драйва (благо они доступны на стадии инсталляции системы), например, в каталог /mnt/mnt
, и разворачиваем заблаговременно размещенный там тарбалл с исходниками ядра. Здесь - первая тонкость: команда tar
из установочного окружения не поддерживает опции -j
, а команда bunzip2
вовсе отсутствует, поэтому распаковка выглядит примерно следующим образом:
$ bzip -dc /path/linux-2.4.22.tar.bz | tar xpv
При желании вслед за этим можно распаковать и наложить патчи (если они нужны - раз, и если имеются на носителе - два), после чего посредством выполняется
$ chroot /mnt /bin/bash
переход в каталог с исходниками и конфигурирование ядра, как обычно. А вот сборку его придется провести в два этапа - ведь модули рекомендуется устанавливать под ядром той же версии, так что ими придется заняться после рестарта:
$ make dep && make bzImage modules
Теперь образ ядра копируем, куда следует:
$ cp arch/i386/boot/bzImage /mnt/boot/[vmlinuz]
под традиционным (vmlinuz
) именем или иным - если все же не пренебрегать установкой ядра штатного. Во втором случае позднее придется еще подкорректировать конфигурационный файл загрузчика.
Но и это еще не все: по завершении процедуры мы пока остаемся без заголовочных файлов. А их следует брать не из ядра рабочей версии, а из того, под которым собиралась установленная в системе glibc
. Так что все равно приходится распаковывать штатный ядерный тарбалл и копировать необходимые файлы и подкаталоги из /mnt/usr/src/linux-2.6.X/include
в /mnt/usr/include
.
Правильное обращение с заголовочными файлами при собственноручной сборке ядра чрезвычайно важно - иначе в дальнейшем можно ожидать всяческих чудес, от отказа работы отдельных приложений до полной неработоспособности системы. Так что стоит задуматься - а стоит ли овчинка выделки? И не проще ли установить штатное ядро, а потом обновить его обычным порядком? Проделав все описанные процедуры несколько раз, заявляю со всей определенностью: проще. Тем более что прекомпилированное ядро легко обновляется через систему управления пакетами Archlinux, до которой мы скоро доберемся.
Стартовые файлы и загрузчик
А пока надлежит все-таки закончить установку. От чего нас отделяет два шага. Первый из них - конфигурирование системы. По выборе этого пункта будет предложено сначала выбрать текстовый редактор для этой процедуры (выполняемой именно посредством этого инструмента) - vi
или nano
. Здесь замечу, что вы не на "ты" именно с первозданным vi
(а не любым из его продвинутых клонов типа vim
) - лучше за него и не браться, остановившись на тривиальном, но простом nano
.
Далее перед нами предстает подменю со списком файлов, доступных для конфигурирования - rc.conf
(главный конфигурационный файл в BSD-стиле), grub.conf
или lilo.conf
(разумеется, править нужно только тот, что соответствует выбранному загрузчику), hosts
, fstab
, modules.conf
и resolv.conf
. Понятно, что абсолютно обязательно просмотреть файл конфигурации загрузчика и fstab
, прочие можно отложить на потом. Хотя именно в этих двух файлах умолчальные записи, внесенные инсталлятором, практически соответствуют тому, что нужно (особенно если ядро устанавливалось штатным способом). Разве что в fstab
можно добавить, например, swap-раздел на втором диске, ну и прочие полезные мелочи (типа опций notail,noatime,nodiratime
для reiserfs, исключить /boot
из автоматического монтирования при загрузке через GRUB, и тому подобное).
Небесполезно и поправить rc.conf
, так как здесь можно установить
- правильный часовой пояс:
TIMEZONE=Europe/Moscow
или, если системные часы установлены по местному времени, во второй строке следует поставить
HARDWARECLOCK="UTC"local;
- прописать модули для автоматической загрузки (например,
ide-scsi
иusb-storage
); - при необходимости указать сетевые параметры и вообще скорректировать стратовые сервисы:
DAEMONS=(cron gpm ...)
как это исчерпывающим образом описано в комментариях; - задать русскую раскладку клавиатуры - в дистрибутиве они имеются в полном комплекте, например:
- определить шрифт консольного вывода, допускающий воспроизведение кириллицы:
KEYMAP=ru4m
CONSOLEFONT="LatArCyrHeb-16 -m koi8-r_to_uni"
Наконец, правка файлов hosts
и resolv.conf
потребуется для настройки сети или модемного подключения (впрочем, эти вопросы далеко выходят за рамки заметки).
Теперь остается последний штрих - установка загрузчика через соответствующий пункт меню. На выбор предлагаются GRUB или Lilo, после чего выбирается диск или раздел, в загрузочный сектор которого его надлежит поместить.
Вот и все. Покидаем инсталлятор, перезагружаемся, извлекая по ходу дела CD - и наслаждаемся, или восхищаемся, нашим новым дистрибутивом...
Особенности установки по FTP
Как уже говорилось, текущая версия Archlinux, доступная с установочного CD, может содержать не самые последние версии пакетов. В репозитории же этого дистрибутива пакеты обновляются со страшной научно-фантастической силой - и у пользователя может возникнуть резонное желание приобщиться к последним достижениям Linux'овой мысли.
Конечно, Archlinux обладает мощной и очень простой в использовании системой апдейтинга - ABS. Однако ее использование связано с компиляцией пакетов, что требует немалого времени.
Далее, пакетный менеджер Archlinux, pacman
, дает возможность тотального (и почти мгновенного) обновления системы из прекомпилированных бинарников. Однако при кардинальной смене версий некоторых базовых пакетов тут можно ожидать всякого рода шероховатостей. Так, в свое время, после выхода ncurces-5.4
, мне так и не удалось собрать zsh
и joe
с поддержкой UTF-8.
Благо решение проблемы актуализации лежит на поверхности стола в буквальном смысле слова: в виде сетевого кабеля локальной сети, подключенной к Интернету, что дает возможность установки Archlinux по протоколу FTP.
Начальные шаги FTP-установки не несут с собой ничего специфичного - это а) загрузка с установочного CD, б) запуск программы setup
, в) разбиение диска на разделы, г) создание файловых систем и д) их монтирование. Далее достаточно вернуться в главное меню, перейти в его пункт выбора пакетов (Packages Select) и там на вопрос об источнике инсталляции бестрепетно ответить - FTP.
Вполне ожидаемо, что первое предложение после такого безрассудства - настроить сеть. А нужно сказать, что в настоящее время сетевая установка Archlinux предусматривается только из локалки с подключением к Интернету - по модему выполнить ее невозможно ввиду отсутствия поддержки ppp в установочном ядре, а указаний об установке с NFS я в документации не нашел.
Настройка сети проходит на удивление легко и просто. Сначала предлагается автоматически определить сетевую карту и подгрузить соответствующий модуль. И если карта поддерживается установочным ядром (а все мало-мальски распространенные карты им поддерживаются), через мгновение появится надпись об успешном окончании этой процедуры.
Впрочем, как сказано в панели установочной программы, отрицательный результат автоматического определения карты - не повод для отчаяния: нужно только перейти в другую виртуальную консоль и прибегнуть к команде modprobe
. Правда, для этого не худо знать название своей карты и соответствующего ей модуля (а также иметь его на установочном диске - но с этим, насколько я знаю, ныне проблем обычно не бывает).
А далее следует всего один вопрос - используется ли DHCP. Поскольку в подавляющем большинстве локальных сетей он используется, положительный ответ напрашивается сам собой - вслед за чем вы будете поздравлены с успешным коннектом, никаких дополнительных вопросов об IP-адресах и прочем не возникнет.
В правдивости сообщения инсталлятора можно убедиться тут же, обратившись к выбору пакетов, предваряемому выбором зеркала. Сначала происходит синхронизация их списка с репозиторием: по умолчанию в качестве такого предлагается current, то есть самые современные версии (хотя вручную можно установить и stable, но в этом случае затея теряет смысл - его пакеты будут идентичны имеющимся на CD более чем полугодичной давности). Затем предлагается список категорий: base, daemons, devel, editors, kernels, lib, multimedia, network, office, system и X11. Бросается в глаза отсутствие категорий KDE и GNOME - ныне они изъяты из официальной части дистрибутива, хотя, как будет сказано далее, доступны в виде пакетов категории extra.
Категория base отмечена по умолчанию, для всех потребных из числа остальных это предлагается сделать самостоятельно (клавишей Tab), после чего на нажатие Enter следует вопрос - выделять ли все пакеты по умолчанию или нет. В первом случае для все категорий, кроме base, придется включать нужные, во втором - вычеркивать ненужные (выбирайте сами, что проще, по мне - так первое).
Предупреждение: пакеты из не отмеченных категорий в списке для окончательного выбора не появятся, так что если из всего office нужен один только ispell, нужно не забыть выделить всю эту категорию.
Состав пакетов в current-версии может отличаться от такового с установочного CD, поэтому задержу на нем некоторое внимание. Для начала, категория base выглядит несколько распухшей, в первую очередь, за счет новомодных пакетов типа udev. Тем не менее, почти все в ней представляется необходимым: чуть ли не единственный оправданный кандидат к отчислению - один из загрузчиков, grub
или lilo
, в соответствие с личными предпочтениями. Ну и reiserfsprogs - в случае стойкой неприязни к этой файловой системе. Еще кандидат на выброс - raidtools
, поскольку даже при наличии потребности в Soft RAID для этой цели, по моему мнению пользователя, проще использовать mdadm
(имеющий место быть в категории system.
Далее в base обращает на себя внимание gcc - Archlinux является одним из немногих дистрибутивов, в котором официально признана поддержка его самых последних версий 3.4.X, обещающих чудеса в плане оптимизации под современные процессоры.
И последнее о base: в него по умолчанию включен gettext, и все пакеты базового набора собраны с его поддержкой. Так что за NLS можно не беспокоиться.
В категории multimedia заслуживает быть отмеченным alsa-driver (вкупе с прочим alsa-инструментарием). Именно его наличие - дополнительный стимул к выбору прекомпилированного ядра, ведь при сборке ядра собственного пришлось бы пересобирать модули поддержки звука.
Наконец, X11. Здесь "кардинальное" изменение выражено в замене XFree86 на идеологически выраженный Xorg. Правда, и "неправильный" XFree86 после инсталляции становится доступным как пакет категории extra. Впрочем, Xorg на деле оказывается совсем не страшным (хотя по началу немного непривычным), так что выбор между X-серверами можно делать чисто волевым усилием (если не вдаваться в тонкости лицензионной политики, остающиеся для меня не совсем понятными)
Ознакомившись внимательно со всем списком, производим окончательный выбор и жмем на OK. Некоторое время происходит проверка зависимостей выбранных пакетов, а затем, с той или иной степень вероятности, сообщение о их нарушении. Приходится возвращаться в меню выбора категорий и далее - пакетов, и так до победного конца. Есть, конечно, возможность продолжить установку на свой страх и риск, но прибегать к ней, ИМХО, не следует: зависимости в пакетах Archlinux описаны по принципу здорового минимализма. Хотя в принципе, если в дальнейшем предполагается пересборка конкретного пакета в еще более минималистском варианте, от кое-каких зависимостей можно и отказаться.
Тем или иным способом добившись полного и всестороннего удовлетворения, жмем на OK, переходя в режим ожидания: начинается скачивание пакетов, их запись на диск и установка. Процесс этот можно наблюдать воочию - в 5-й виртуальной консоли выводится полная информация о его ходе.
Наконец, наступает счастливый момент окончания скачивания - в силу особенностей формата пакетов и исключительного быстродействия пакетного менеджера Archlinux временем на собственно установку можно пренебречь.
Теперь нужно установить самый главный компонент - ядро системы. Это - такой же пакет, как и все остальные (из категории kernels), и устанавливается также - выбором из списка, включающего две пары альтернатив - прекомпилированные ядра ветвей 2.4.X и 2.6.X, с поддержкой SCSI или без оной, соответственно. Нештатно возможна и сборка собственного ядра, как это описывалось ранее.
Далее наступает черед первичного конфигурирования, которое, ясное дело, выполняется практически также, как и при установке с CD. Единственное, на что следует обратить внимание - это настройка сетевых интерфейсов: раз уж мы ее выполнили ранее, резонно сохранить работающую сетевую конфигурацию на века. Делается это все в том же файле глобальной системной конфигурации - rc.conf
.
Первый из сетевых интерфейсов, внутренний (т.н. loopback
), собственно к сети отношения не имеет, однако позволяет, в частности, организовать web-сервер на локальной машине. Он требует внесения в rc.conf
такой строки:
lo="lo 127.0.0.1"
За обычный же сетевой протокол отвечает строка вида:
eth0="eth0 ... "
В оригинальном файле в этой строке в качестве примера приведены IP-адрес, сетевая маска и тому подобные параметры. Однако в реальной сети с DHCP-сервером ей достаточно придать такой вид:
eth0="dhcp"
после чего обеспечить активизацию обоих интерфейсов (что уже сделано по умолчанию):
INTERFACES=(lo eth0)
Строки, определяющие gateway
и ROUTES
, при использовании DHCP-сервера, насколько я знаю, не нужны.
А вот строка, обеспечивающая загрузку демонов, важна. По умолчанию она имеет вид:
DAEMONS=(syslog-ng hotplug !pcmcia network netfs crond)
Здесь можно, поставив восклицательный знак, отключить ненужный сервис или, напротив, вписать (через пробел) недостающий. Обращаю внимание на элемент hotplug
: если сетевая карта была при установке определена автоматически, выключать его не следует, иначе после перезагрузки соответствующий ей модуль не будет подгружен.
В итоге после выхода из программы установки и нажатия трех сакраментальных клавиш перезагрузки) мы получаем быструю, компактную, но почти полнофункциональную (а для тех, кто не нуждается в KDE или GNOME - и без оговорки "почти") систему, почти пригодную к немедленной эксплуатации. И опять же - оговорка "почти" действенна только для юзеров с особыми претензиями, желающими довести систему до собственного (и, обычно, недосягаемого) идеала.