CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
25.05.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: Archlinux & CRUX

CRUX: инициализация и настройка

http://alv.me/

CRUX — не система быстрого развёртывания. И потому знакомство с ним надо начинать с настройки. Причём, опять-таки в отличие от СБР, например, того же Zenwalk'а, заниматься первичными настройками походя, в процессе работы, не получится: в свежеустановленном виде он мало пригоден к практическому использованию.

Так, вследствие аскетизма базовой комплектации, пользователь вряд ли найдёт в нём свои любимые и привычные пакеты. Их придётся устанавливать дополнительно, причём, как будет рассказано в соответствующей заметке, исключительно из сети. А вот сетевое соединение-то по умолчанию в CRUX'е и не настроено. Как не настраивается в этом дистрибутиве при установке и многое другое — в частности, кириллические шрифты и раскладки клавиатуры для консоли, оконная система X и так далее.

Однако всё это не так страшно, как кажется на первый взгляд: система инициализации CRUX'а настолько проста, что её конфигурирование в соответствие с запросами пользователя не займёт много времени, хотя и потребует некоторой правки не только конфигов, но и даже скриптов инициализации. Поэтому с рассмотрения устройства стартовой схемы CRUX'а мы и начнём работу по его настройке.

Как уже говорилось во вступительных заметках, CRUX использует схему инициализации в BSD-стиле — ещё более простую, пожалуй, чем в современной FreeBSD. Однако он остаётся Linux'ом, и потому так называемые runlevels (уровни запуска) из этой схемы никуда не девались, как и описывающий их файл /etc/inittab.

Правда, используются runlevels по минимуму: как можно видеть из содержимого /etc/inittab, кроме уровней 0 (останов системы) и 6 (перезагрузка), предусмотрены только уровни 1 (однопользовательский режим) и 2 (многопользовательский режим с консольным входом). Уровни 3-5 не используются — так что фактически мы видим полную идентичность стартовой схеме BSD. Это не значит, что нельзя, например, приписать к уровню 3 графический вход в систему, но заниматься этим пользователю придётся самостоятельно.

В соответствии с этим, набор стартовых сценариев, перечисленных в /etc/inittab, сведён к минимуму:

  • /etc/rc — главный общесистемный сценарий, исполняемый в любом случае;
  • /etc/rc.multi — сценарий, исполняемый при обычном входе в систему;
  • /etc/rc.single — сценарий, отрабатываемый при переходе в однопользовательский режим;
  • /etc/rc.shutdown — сценарий, исполняемый при перезагрузке системы или её останове.
Кроме основных сценариев, при инициализации могут быть задействованы и дополнительные:
  • /etc/rc.modules, обеспечивающий, как легко догадаться из названия, загрузку модулей; впрочем, по умолчанию он исполняет только команду /sbin/depmod -a;
  • /etc/rc.fix, вызываемый из /etc/rc и служащий для вызова дополнительных функций; по умолчанию он выполняет только проверку Иксовых шрифтов;
  • /etc/rc.local — дополнительный сценарий неопределённого назначения, в который обычно помещают всякую всячину, не достойную места в главных сценариях инициализации; по умолчанию пуст.
Главный конфигурационный файл системы — /etc/rc.conf. В нём определяются:
  • шрифт и клавиатурная раскладка для консоли (по умолчанию чистая латиница и us соответственно);
  • часовой пояс;
  • имя хоста, если необходимо;
  • программа для записи лог-файлов (по умолчанию sysklogd);
  • список стартовых служб (демонов), запускаемых при инициализации системы (по молчанию он предельно аскетичен, и содержит только cron и net).
Сами сценарии запуска стартовых служб находятся в каталоге /etc/rc.d и в свежеустановленной системе также не многочисленны, обеспечивая лишь работу сети, удалённый доступ по ssh, периодический запуск заданий и ещё несколько операций из числа самых необходимых.

Впрочем, по умолчанию сетевое соединение у нас как раз и отсутствует: при инсталляции автоматически конфигурируется только loopback-интерфейс и некий условный ethernet-интерфейс, подразумевающий статический IP-адрес. Так что с настройки сети нам и придётся начать — без этого невозможна доустановка пакетов, а их, как я уже говорил, в свежеинсталлированной системе не густо.

Запуск сетевого соединения осуществляется файлом /etc/rc.d/net. Открываем его в текстовом редакторе и редактируем должным образом. То есть в случае использования провайдером DHCP в секциях start и stop убираем все строки, относящиеся к интерфейсу ethernet, а вместо них вписываем следующие:

start)
	...
	# ethernet
	/sbin/dhcpcd -t 10 -h hostname eth0
	;;
stop)
	/usr/bin/killall -q /sbin/dhcpcd
	...
	;;
Значение опции -h указывается в соответствии с требованиями провайдера, обычно его можно просто опустить. И очевидно, что строки, относящиеся к loopback-интерфейсу, трогать не нужно.

Если провайдер использует VPN-авторизацию — придётся каким-то образом вытаскивать, собирать и устанавливать порт pptp, имеющийся в одной из пользовательских коллекций, а потом настраивать его в соответствие с реалиями данной сети.

Однако предположим, что настройка сети (после перезапуска машины или реинициализции системы) прошла благополучно. Теперь можно воспользоваться портами CRUX для доустановки нужных пакетов. Из которых первейшим я полагаю gpm — без консольной мыши всякого рода настроечные манипуляции кажутся мне неудобными.

Само по себе обращение с портами мы сейчас не будем рассматривать — этому планируется посвятить отдельную заметку. Поэтому чисто конспективно изложу последовательность действий.

Перво-наперво делаем доступной категорию портов contrib (именно в ней "живёт" gpm):

# mv /etc/ports/contrib.rsync.inactive /etc/ports/contrib.rsync
Затем закачиваем себе дерево портов:
# ports -u
Переходим в каталог нужного порта:
# cd /usr/ports/contrib/gpm
Собираем порт:
# pkgmk -d
Устанавливаем образовавшийся в результате этой операции бинарный пакет:
# pkgadd gpm#1.20.6-1.pkg.tar.gz
Обращаю внимание на символ # в имени пакета перед номером версии: именно он отличает пакеты, собранные из коллекции портов CRUX, от любых других тарбаллов.

Теперь службу консольной мыши надо активизировать. Обычно достаточно вписать имя запускающего её сценария — gpm (этот файл волшебным образом появился в каталоге /etc/rc.d/ после установки пакета), — в нужное место /etc/rc.conf:

SERVICES=(cron net gpm)
Работает со всеми USB-мышами и ноутбучными тачпадами, с которыми я сталкивался в последнее время. Если нет — придётся подправить собственно сценарий /etc/rc.d/gmp на предмет правильности имени файла устройства и (или) его протокола. Как — описывалось бессчётное число раз.

Вернёмся, однако, к нашему главному конфигу. Следующее, что нужно в нём поправить, — это указание на часовой пояс. Все возможные значения вытаскиваем из каталога /usr/share/zoneinfo/. Например:

TIMEZONE=Europe/Moscow

В дальнейшем можно доустановить порт ntp (включённый в категорию contrib) для синхронизации с серверами точного времени.

И последнее, что надлежит сделать с главным конфигом, — выполнить русификацию консоли. Для чего требуется указать экранный шрифт и раскладку клавиатуры. Будем исходить из гипотезы, что мы относим себя ко всему прогрессивному человечеству, прочно перешедшему на локаль UTF-8. В этом случае со шрифтом на скорую руку можно поступить так:

FONT=LatArCyrHeb-16

В случае, если он не будет устраивать эстетически (а скорее всего не будет), — позднее можно выбрать один из портов пакета terminus-font (он в нескольких вариантах доступен в разных пользовательских коллекциях), и поискать более подходящий. А пока все доступные шрифты находятся в каталоге /usr/share/kbd/consolefonts/.

А вот раскладку для UTF8 потребуется предварительно скачать (например, отсюда) и скопировать в каталог /usr/share/kbd/keymaps/i386/qwerty. После чего вписать:

KEYMAP=ru-utf

На этом, однако, русификация не заканчивается. Экономичность CRUX'а заключается также и в том, что по умолчанию в системе нет ни одной локали, кроме C. Так что нужную нам (а мы договорились, какая нам нужна) надо сгенерировать таким образом:

# localedef -i ru_RU -f UTF-8 ru_RU.utf8

Дальше можно поступить двояким образом. Первый способ — поместить строку

export LANG=ru_RU.utf8

в файл /etc/profile. В этом случае системная локаль будет одинаковой для всех пользователей. Второй вариант — указать ту же строку в профильном файле командной оболочки пользователя, каковой выступает bash, то есть вписать её в ~/.bashrc. А для администратора системы сохранить умолчальную локаль, то есть в файл /root/.bashrc вписать строку

export LANG=C

Для меня это вопрос привычки, но в принципе к тому есть и некоторые резоны, на которых задерживаться не буду.

Правда, в конфиг root'а эту строку вписать легко. А вот для пользователя придётся сначала создать аккаунт — мы же помним, что при установке на эту тему не говорилось ни слова.

Из подручных средств управления аккаунтами по умолчанию мы в CRUX'е располагаем одним — /usr/sbin/useradd. Это голая командная утилита, так что все атрибуты пользовательской учётной записи (пароль, командную оболочку, домашний каталог и так далее) нужно задать как значения соответствующих опций. Каких именно — в краткой форме можно узнать, дав эту команду без опций и аргументов. Ну, а за подробностями — как обычно, к тёте Мане...

Вот теперь можно заняться редактированием ~/.bashrc. Думаю, большинство потенциальных пользователей CRUX'а уже имеет свой любимый конфиг для bash'а, который остаётся только скопировать в домашний каталог. Правда, тут я столкнулся с незадачей — и совершенно неожиданной.

А именно, переписав свой .bashrc, который верой и правдой служит мне много лет, и перелогинившись, я с удивлением обнаружил, что он просто игнорируется: то есть и локаль оказывается не установленной, и псевдонимы команд не работают, и пути работают только те, что прописаны в /etc/profile по умолчанию. Проверил для root'а — то же самое. В чём дело — так и не понял. Нашёл решение, может быть, и не изящное, но работающее: вписал в /etc/profile строку

source ~/.bashrc

После чего всё пришло в норму.

Надо сказать, что на этом неожиданности CRUX'а не закончились. Однако они относятся уже к другой области. А первичные настройки можно считать выполненными — по крайней мере, главные. И те, которые я упомнил. Если упустил что-то важное — пишите, дополню.




Комментарии

Сергей, Thu Mar 5 23:21:38 2009:
Здравствуйте Алексей.
Я свой дистр собираю на базе CRUX. Если у вас есть желание её потестить, может найти баги или просто покритиковать, то пишите мне на gloomyquazar @ gmail dot com. Я вам её скину. Сергей.

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds