О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

24.07.2008

Archlinux: установка и начальное конфигурирование

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 - остается только

  1. перейти в свободную консоль,
  2. подмонтировать необходимые файловые системы, такие как devfs и procfs:
  3.  $ mount -t devfs devfs /mnt/dev ;
    $ mount -t proc proc /mnt/proc
  4. выполнить операцию смены корня:
  5.  $ chroot /mnt /bin/bash
  6. зайти в дерерво исходников относительно нового корня:
  7.  $ cd /usr/src/linux
  8. сконфигурировать ядро обычным способом:
  9.  $ make menuconfig
  10. и собрать его столь же обычной последовательностью команд:
  11.  $ 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, так как здесь можно установить

  1. правильный часовой пояс:
     TIMEZONE=Europe/Moscow
    HARDWARECLOCK="UTC"
    или, если системные часы установлены по местному времени, во второй строке следует поставить local;
  2. прописать модули для автоматической загрузки (например, ide-scsi и usb-storage);
  3. при необходимости указать сетевые параметры и вообще скорректировать стратовые сервисы:
     DAEMONS=(cron gpm ...)
    как это исчерпывающим образом описано в комментариях;
  4. задать русскую раскладку клавиатуры - в дистрибутиве они имеются в полном комплекте, например:
  5.  KEYMAP=ru4m
  6. определить шрифт консольного вывода, допускающий воспроизведение кириллицы:
  7.  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 - и без оговорки "почти") систему, почти пригодную к немедленной эксплуатации. И опять же - оговорка "почти" действенна только для юзеров с особыми претензиями, желающими довести систему до собственного (и, обычно, недосягаемого) идеала.