О блоге

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

19.08.2008

RockLinux: нерушимый, как скала

2002 г

Эта - первый Source Based дистрибутив в истории Linux. И, по иронии судьбы, - один из наименее известных в этой категории систем. Настоящая заметка призвана хоть в какой-то мере исправить эту несправедливость.

Не проходит ли век user-ориентированных систем? Казалось бы, еще недавно каждый вновь выходящий дистрибутив Linux считал своим долгом перво-наперво декларировать свое дружелюбие к конечному пользователю. В качестве меры каковой принималось Windows-подобие - вплоть до заявлений о большей Windows'совости, чем сам Windows. Причем в некоторых таких дистрибутивах Windows-подобие можно было воспринять как издевательство (или проявление ну очень тонкого чувства юмора).

Противовесом этому было появление волны дистрибутивов, root-ориентированных. И в качестве примера рассмотреть RockLinux, названный его создателем, Клиффордом Вольфом, "нерушимым, как скала". К слову сказать, именно Клиффорд и употребил впервые обозначение - "дистрибутив, дружественный к администратору". Правда, позднее за такими системами закрепился термин - Source Based дистрибутив.

Собственно говоря, RockLinux разрабатывается уже достаточно давно - с начала 1999 г.. И именно он был первым из плеяды дистрибутивов, основанных на исходниках. Однако до недавнего времени он был труднодоступен по ftp. И к тому же не имел iso-имиджа инсталляционного диска (видимо, из вящей дружбы к администратору)... Так что на Руси... - ну, сами понимаете...

Однако со временем изначальный RockLinux стал основой прекомпилированной системы, получившей название Desktop RockLinux (или, сокращенно, да простят меня читающие это дамы, dRock). Который распространяется в виде iso-имиджа и ориентирован уже на конечного пользователя. Да, разные варианты RockLinux можно найти на официальном сайте проекта: http://www.rocklinux.org/download.html

Степень root-freundshaft этого дистрибутива интересовала меня давно. А тут наконец представилась возможность с ней ознакомиться воочию. Чем я и не замедлил заняться.

Текущая на тот момент версия dRock'а включала образы двух дисков - собственно инсталляционного и дополнительного (ныне число дисков выросло до 3). Для установки необходим только первый; на втором размещались KDE, Apache и еще некоторые приложения (AbiWord, Galeon, Nautilus и т.д.,), дружелюбием к администратору не страдающие.

Установка системы начинается с загрузки (для которой используется первый диск). В ходе ее следует несколько вопросов: загружать ли модули ядра, да как именовать виртуальные консоли - по новому ли, vc/1-vc/6, или по старому, ttw/#. Ибо PockLinux был одной из первых систем, задействоваших штатно файловую систему устройств devfs; сейчас она воспринимается как атавизм, но тогда, в первые годы текущего тысячелетия, являла собой большой шаг вперед, существенно облегчая работу со сменными, например, устройствами.

После ответов пользователь оказывается перед приглашением командной строки оболочки. К слову сказать, полноценной bash, а не один из всяких там урезанных уродцев типа ash: с автодополнением, историей команд и прочими атрибутами. И консолей доступно вдоволь (конкретно, шесть), и переключаться в них можно обычным образом (Alt+F#).

Правда, что с ней, строкой этой делать, - a priory, без чтения документации, совершенно неясно. Благо, если документация не была прочитана до начала процесса, к ней можно обратиться сейчас. Для чего CD монтируется в каталог /src (правда, об этом тоже нужно предварительно знать), и с него открывается файл /src/Documentation/INSTALL (именно в указанных регистрах).

Тут следует учесть, что, как уже отмечалось, в dRock'е используется файловая система для файлов устройств - devfs, она задействуется уже на стадии установки, причем - без режима обратной совместимости). И потому и сейчас, и в дальнейшем процессе монтирование следует выполнять командами вида

$ mount /dev/cdroms/cdrom0 /mount_point

для CD или

$ mount /dev/discs/disc#/part# /mount_point

для дисковых разделов.

Итак, посредством команды more (less на стадии установки не предусмотрен) открываем файл документации (можно - и в другой консоли, для сверки в процессе последующей инсталляции) и читаем, что же делать дальше. А дальше, оказывается. следует создать разделы и файловые системы на них. Для чего предлагается использовать программы fdisk или cfdisk, например, так:

$ fdisk /dev/discs/disc#/disc

где опять же следует обратить внимание на форму аргумента. Создаем разделы - корневой и для своппинга в обязательном порядке, прочие (/usr, /home или еще чего) - по желанию, после чего обращаемся к созданию файловых систем.

Ну, раздел для своппинга размечается обычным образом (mkswap, не забывая только про особенности devfs). А для прочих разделов разработчиками настоятельно рекомендуется журналируемая система ReiserFS (создаваемая командой mkreiserfs). Хотя, как сказано, не возбраняется и ext2fs/ext3fs, учреждаемая, как обычно, командой mkfs.ext2 (последняя - с дополнительной опцией -J, символизирующей журналирование); в последних версиях DRock поддерживается и XFS с JFS.

Далее раздел для своппинга активизируется (командой swapon), а созданные файловые системы монтируются в каталог /trg (если при разбиении диска не ограничиваться корневым разделом, перед монтированием /home или /usr следует создать соответствующие точки монтирования - /trg/usr, например).

Все предыдущие действия были, в общем, достаточно обычными - тот же порядок манипуляций применяется, например, и в Slackware (и практически во всех Source Based дистрибутивах). А вот теперь начинается собственно установка - отдачей директивы Install в командной строке.

После этого на фоне dRock'овского логотипа появляется весьма симпатичная псевдографическая панель с меню, предлагающим пункты:

  • выбора пакетов,
  • суммарной информации,
  • перехода в консольный режим,
  • установки,

а также about и quit. Начинать, естественно, следует с выбора пакетов. Они сгруппированы в несколько серий - базовые компоненты, средства разработки, документация, мультимедиа, сеть, наука (!), текст, утилиты и еще пара-тройка. В сериях base и dev определенные пакеты отмечены по умолчанию, иные же можно добавить. Как и "умолчальные" - изъять, причем - любые, никаких запретов или даже предупреждений не последует; то есть соблюдение зависимостей пакетов остается на совести пользователя. Прочие пункты - девственно чисты, тут пользователю предоставляется полная свобода выбора.

Надо сказать, что из чего выбирать - есть. Даже без учета дополнительных дисков, в dRock включен вполне достаточный набор приложений, утилит и средств разработки, включая XFree86, GNOME, WindowMaker и прочее. Среди которого - и мой любимый joe, попавший почему-то в утилиты, и несколько разных shell'ов, и средства для работы со звуком и видео.

Меня сразу заинтересовало, как в dRock решается больной вопрос дистрибутивостроителей - контроль зависимостей пакетов при ручном их выборе. Оказалось - никак. Видимо, из дружеского расположения к администратору, система предоставляет ему возможность продемонстрировать свои знания в этой области. Буде же таковых не имеется (или просто лениво разбираться, от каких lib'ов зависит Midnight Commander) - никакой помощи, даже предупреждающих сообщений, ожидать не следует. Так что вполне может оказаться, что после установки половина самостоятельно выбранных приложений просто откажется запускаться. А теоретически рассуждая, можно даже установить систему без ядра - снять отметку с соответствующего пункта серии base системой не возбраняется.

Но зато имеется возможность поиска пакетов (в том числе по маске), а также записи сделанного выбора в виде файла. Как, естественно, и считывание из него заранее определенного набора - очень полезно при неоднократных установках, если уж с взаимозависимостями удалось разобраться вручную, можно увековечить результаты сего подвига.

После собственно установки пакетов (процедура не очень длинная), предлагается или продолжить выполнение установочных скриптов, или установить что-нибудь со второго диска. Выбор последнего варианта, впрочем, приводит к появлению приглашения командной строки - видимо, второй CD предлагается использовать, исключительно работая руками.

А вот первый вариант позволяет выполнить необходимый минимум настроек (правда, уже без менюшек, в "черном" диалоге). Перво-наперво - клавиатура. Ее можно вбить сразу, или, набрав list, ознакомиться со всем списком (то же - и при дальнейших настройках). В котором, к приятному удивлению, оказываются русские раскладки - ru просто, ru (ywerty), ru3. Затем - всякие repeat, delay, numlock, выбор часового пояса, и, наконец, язык.

Под последним, как можно предположить (и в дальнейшем - убедиться в справедливости этого) понимается locale. Для Руси локализацию можно выбрать любую - с наборами символов KOI8-R (и даже -U), CP1251, CP866, ISO-8859-5. Правда, загрузка соответствующих экранных шрифтов при этом сочтена излишеством, что приводит потом к эффекту, хорошо известному пользователями: передаче русскоязычных сообщений шрифтами с базовым (американским) набором символов.

Вслед за этим настраивается служба консольной мыши (gpm). Сначала, естественно, вопрос - а нужна ли она вообще (на мой взгляд - так обязательно, но у иного ведь может быть и особое мнение). Затем - определение порта, сиречь физического интерфейса, типа (иными словами - протокола), и количества кнопок.

Следом - настройка (условно говоря) загрузчика - предлагается GRUB, с созданием меню для оного и записью в MBR. После чего тем не менее предлагается настроить еще и LILO. Что, возможно, не лишне - никакой настройки GRUB как таковой не происходит. И если на диске была уже установлена некоторая (угадайте, какая) система, ее загрузка в меню не предусматривается, это потребуется сделать вручную.

После загрузчика настраивается сеть. Здесь можно выбрать автоматическую настройку через DHCP (если таковая служба имеется) или задать IP-адрес и прочие параметры вручную. Ну а сетевой интерфейс определяется сам собой - в двух случаях, с которыми я имел дело, правильно.

Все, установка окончена. Правда, выводится пространное предупреждение, что на все выполненные настройки не дается никаких гарантий, и предлагается проконтролировать их вручную согласно списку измененных файлов. Также, опционально, советуют пересобрать ядро и настроить (правкой конфигурационного файла) систему X. Впрочем, прямо как в стране советов, никаких средств для этого не предлагается - в самой по себе программе установки даже vi недоступен. Так что все эти манипуляции лучше отложить до после перезапуска.

После перезапуска же можно попытаться и исправить огрехи с зависимостями. Для этого штатно предусмотрено два средства: повторный запуск программы Install и комплект для управления пакетами. Первое из них, к сожалению, у меня не сработало, вызывая постоянные сообщения об ошибках. Второе же - это программа pkg-install, близкородственная по идеологии pkg_add из BSD-систем или pkg-tools из Slackware.

К сожалению, по реализации она значительно уступает утилите из FreeBSD, например. В частности, никаких зависимостей автоматически она не проверяет. И при последующей попытке запустить программу, для которой таковые нарушены, система выдает крайне информативное сообщение о недостаче библиотеки lib_имя_рек.so, без малейшей конкретизации, в каком именно пакете этот самый "Имя рек" искать следует - видимо, опять же из дружбы к сисадмину (чтоб служба ему медом не казалась).

Тем не менее, все недоработки установки ликвидировать можно, после чего система приобретает вид, вполне похожий на настоящий: как я уже говорил, комплектация ее, не смотря на скромный по нынешним временам объем, вполне достаточна (особенно с учетом дополнительных дисков). А далее - ничто не мешает наращивать систему обычными средствами - подбором и компиляцией недостающих приложений.

В общем, от dRock'а у меня остались противоречивые, но в целом приятные впечатления. Отсутствие контроля зависимостей можно объяснить идеологическими причинами: разработчики не без оснований полагают, что опытный пользователь справится с этой проблемой лучше, чем любая автоматика. Ограниченность набора приложений также аргументирована Клиффордом: он включил в дистрибутив только то, что лично протестировал на работоспособность в своей системе. Конечно, есть явные недоработки - если уж берешься устанавливать национальные раскладки клавиатуры и, тем более, locale, то сам бог велел и об экранных шрифтах подумать.

Главное же - появление дистрибутивов типа RockLinux было отражением смены тенденций в дистрибутивостроении. Каковая в дальнейшем получила развитие в таких системах, как Gentoo, CRUX, Archlinux и многих других.