2008-06-25
Многоопытные пользователи дистрибутивов типа Slackware, Gentoo или Archlinux при первом столкновении с Zenwalk'ом порываются действовать старыми испытанными методами - универсальным конфигуратором в виде сочетания шелла и текстового редактора, полагая, что все остальное - от глюкавого. Забывая о штатном настроечном инструментарии, включенном в состав этого дистрибутива.
И действительно, обычно правка конфигурационных файлов вручную — самый простой и прямой способ настройки системы. Но при одном непременном условии: если пользователь точно знает, что он делает, как и зачем. Подготовка начинающих пользователей обычно этому условию не удовлетворяет, и потому им лучше воспользоваться штатными средствами конфигурирования из данного дистрибутива. Да и для пользователей многоопытных, но не знакомых с особенностями именно Zemnwalk'а, это в ряде случаев может оказаться предпочтительней.
Итак, приступим. Все инструменты по настройке общесистемных параметров в Zenwalk'е объединены в комплекс под названием Zenpanel. Каждый элемент этой панели отвечает на настройку одного конкретного общесистемного параметра, и со временем мы изучим корреляцию между ними. А пока рассмотрим элементы Zenpanel в том порядке, в каком видим их на экране (рис. 4.01).

Рис. 4.01. Zenpanel — общий вид
Да, чуть не забыл: чтобы насладиться видом, приведенным на рис. 4.01, надо предварительно получить права root'а — все действия через Zenpanel требуют административных привилегий (рис. 4.02).

Рис. 4.02. Получение прав администратора перед входом в Zenpanel
Первый по порядку элемент панели — Host and Domain (рис. 4.03). По умолчанию первый — zenwalk, второй — hyperion.net, при желании их можно заменить своими реалиями. Впрочем, особой необходимости в этом обычно нет.

Рис. 4.03. Определяем хост и домен — а оно нам нужно?
Второй элемент — System date, с его помощью устанавливается текущее число, месяц и год. Ничего непонятного здесь нет. Разве что стоит отметить галочкой чекбокс use ntp, как это сделано на рис. 4.04, для автоматической синхронизации с серверами точного времени, по умолчанию она не используется — вероятно, майнтайнеры полагали, что ошибка в дате более чем на сутки маловероятна. Забывая о таком явлении, как ночь с пятницы на понедельник...

Рис. 4.04. Наутро после ночи с пятницы на понедельник: уточняем дату
Назначение элемента Kernel modules понятно без комментариев, при одном взгляде на вызываемую им панель (рис. 4.05). В левой её части список всех доступных для подгрузки модулей, в правой — список модулей загруженных и указание, какие модули от них зависят. Подключение незадействованных модулей и отключение активных выполняется двойным щелчком на имени.

Рис. 4.05. Разбираемся с модулями
А вот какие модули хорошо бы подключить, а какие, напротив, отключить как ненужные — нужно разбираться в каждом конкретном случае. Например, очевидно, что на настольной машине модуль управления батареями (на рис. 4.05 отмечен выделением) нужен, как зайцу стоп-сигнал, и может быть безболезненно удалён. На ноутбуке же он необходим. Кроме того, на ноутбуке интересно поэкспериментировать с модулями из серии cpufreq* — на предмет энергосбережения или, напротив, достижения максимальной производительности.
Следующий элемент, Netpkg, вызывает графическую надстройку над утилитой netpkg — менеджером пакетов, работающим в текстовом режиме из командной строки. Тема эта очень важна и обширна, и потому выделяется в отдельное производство, то есть в самостоятельную главу. Так что здесь этот элемент пропускаем.
В панели, вызываемой через элемент Network proxy, в соответствующих полях можно вбить адреса прокси-серверов для протоколов HTTP и FTP (рис. 4.06). Те, кто прокси использует, и сам знает, что тут надо вбивать, а кто не использует — тому это и знать не обязательно.

Рис. 4.06. Определяем прокси-сервера, если их используем
Элемент System time, как нетрудно догадаться, не что иное, как корректировка системного времени. И вот тут отметка в боксе use ntp, как это показано на рис. 4.07, обязательно пригодится.

Рис. 4.07. Системное время — не забудем про ntp
Элемент Startup Services — включение и отключение служб и демонов, запускаемых при загрузке системы (рис. 4.08). Частично этот вопрос рассматривался в главе про инсталляцию системы. Где говорилось, что без точного знания, что из этой оперы нужно, а что — нет, лучше ничего не трогать.

Рис. 4.08. Стартовые сервисы — не пора ли набраться... знаний (а вы чего подумали?)
Однако настала пора это знание приобрести — для чего приведем полный список доступных служб с их кратким описанием:
В итоге из всего богачества стартовых служб, предусмотренных схемой инициализации Zenwalk, у меня остается только три: alsa, inetd и ntpd. Тем же, которые с претензиями, вольно добавлять в этот список то, что необходимо им.
Элемент Keyboard layout — это настройка раскладки клавиатуры в консоли. Не спешите запускать его до того, как прочтёте следующий абзац — иначе при определённых условиях мелкая, но неприятная подлянка вам гарантирована.
Внимание. Если вы уже настроили Иксы для полноценной работы с кириллицей (как — будет сказано ближе к концу этой главы, то перед тем, как настраивать консольные раскладки, обязательно сделайте копию конфига оконной системы X — файла /etc/X11/xorg.conf, например, в свой домашний каталог, выполнив в командной строке терминального окна команду типа такой:
$ cp /etc/X11/xorg.conf ~/xorg.conf.res
После этого можно действовать безбоязненно. Для начала выбираем нужную нам раскладку клавиатуры — всед за всем прогрессивным человечеством это будет /qwerty/ru-utf.map (рис. 4.09). Правда, в свежеустановленной системе её-то мы как раз и не увидим. Чтобы приобщиться к прогрессу, нам потребуется скачать файл этой раскладки (например, отсюда ) и скопировать его куда надо, например, так:
$ cp path2/ru-utf.map.gz /usr/share/kbd/keymaps/i386/qwerty/
разумеется, предварительно получив права root'а посредством команды
$ su
с последующим вводом пароля администратора (мы ведь не забыли его со времён инсталляции, не так ли?).

Рис. 4.09. Выбираем юникодовскую раскладку клавиатуры
Теперь можно выбрать нужную нам юникодовскую раскладку, как это показано на рис. 4.09. После чего, проследив, чтобы отметка с чекбокса ненужного нам numlock была снята (по умолчанию она будет появляться всякий раз при запуске элемента Keyboard layout), смело жмем на OK.
И всё у нас получается хорошо — перезагрузив машину, выйдя в текстовую консоль посредством, например, Alt+Control+F2 и авторизовавшись там, мы с радостью наблюдаем родные буквы от братчиков Кирилла и Мефодия. Правда, чтобы добраться до них, нужно использовать непривычную (для меня) комбинацию клавиш RightAlt+Shft (правда, Shift — любой), но это дело поправимое, и со временем мы узнаем, каким образом.
Однако, вернувшись в сеанс Иксов (посредством клавиш Alt+F7), мы с ужасом обнаруживаем, что никакой переключатель раскладок не работает, и русские буквы вводиться не желают никаким образом.
Причину искать недолго — достаточно сравнить секцию Keyboard section текущего иксового конфига xorg.conf с нашим предусмотрительно сохраненным резервным — xorg.conf.res. Собственно, для сравнения нам достаточно трех последних строк (табл. 1).
Таблица 1
| xorg.conf | xorg.conf.res |
| Option "XkbLayout" "ru-utf" | Option "XkbLayout" "us,ru" |
| Option "XkbVariant" ",winkeys" | Option "XkbVariant" ",winkeys" |
| Option "XkbOptions" "" | Option "XkbOptions" "grp:caps_toggle,grp_led:scroll" |
Комментарии, что называется, излишни, но всё же остается только удивляться причудам конфигуратора консольной клавиатуры. Мало того, что он залез в Иксовый конфиг, так он еще вписал туда консольную раскладку ru-utf, которая, разумеется, в Иксах ничего не «раскладывает». При этом ликвидировав переключатель раскладок как класс — действительно, на фига он нужен, если раскладка всего одна. Но при этом почему-то сохранил в целости и сохранности строку с вариантом. В общем, смех да и только...
К счастью, всё это легко исправимо — не зря же мы делали резервную копию нашего иксового конфига. Так что остается только выполнить процедуру обратного копирования (предварительно получив административные права):
$ cp ~/xorg.conf.res /etc/X11/xorg.conf
и перезапустить сеанс Иксов. После чего вкушать плоды трудов Кирилла и Мефодия как в консоли, так и в графическом режиме.
Впрочем, дабы не подвергать свою психику таким потрясениям, можно поступить проще: проводить окончательную русификацию Иксов после того, как мы полностью разделаемся со всеми элементами Zenpanel'и.
Кстати, следующий элемент, Terminal, нас уже заждался. Правда, его посредством всего-навсего вызывается терминальное окно с командной оболочкой (login shell) администратора системы, в которой можно вводить команды, доступные только суперпользователю (рис. 4.10). И единственное, что тут можно настроить — это внешний вид терминала. Но мы сейчас этим заниматься не будем — на то у нас отведено вдоволь места в следующей главе.

Рис. 4.10. Персональный терминал администратора
Следующий элемент — Video Comfiguration. Это не настройка разрешения, цветности и тому подобных материй, как можно было бы подумать из названия элемента. А установка способа авторизации в системе - текстового или графического. При его запуске сначала появляется сообщение об опробовании видеорежима и предложение запустить runlevel 3 (об уровнях запуска разговор будет особый, пока замечу только, что это — старт машины в текстовом режиме). Если с этим согласиться — а как видно из рис. 4.11, ничего другого делать не остается,

Рис. 4.11. Начинаем конфигурирование входа в систему
... то появляется следующее предложение — включить прозрачность, тени и прочие спецэффекты. От него уже можно отказаться, как можно и прервать процедуру конфигурирования (рис. 4.12).

Рис. 4.12. Нужны ли нам спецэффекты?
Но мы ничего прерывать не будем и смело пойдем до конца, согласившись претерпеть даже спецэффекты. А конец будет таков: в каком runlevel всё-таки загружаться, третьем, текстовом, недавно опробованном, или всё же в четвертом графическом, как оно и было по умолчанию (рис. 4.13). Посокльку к хорошему привыкаешь быстро, оставляем второй вариант.

Рис. 4.13. И всё-таки выбираем графику...
Следующий элемент панели, Printing, я пропущу — никакого печатающего устройства у меня нет, а настраивать печать без принтера — это еще большее извращение, чем тост без вина или брачная ночь без невесты.
Элемент Network Settings высвечивает все сетевые параметры (рис. 4.14), перечислять которые вряд ли нужно. Тем более, что если отмечены оба чекбокса Use DHCP, то и менять там нечего. А вариант без использования DHCP предлагается рассмотреть заинтересованным лицам.

Рис. 4.14. Смотрим на сетевые параметры
Элемент User Profiles посвящен управлению пользовательскими аккаунтами. С его помощью можно просмотреть список пользователей, создать новый пользовательский аккаунт или удалить имеющийся, поменть пароль для доступа к акому-либо аккаунту, и совершить прочие действия, очевидные при беглом взгляде на рис. 4.15.

Рис. 4.15. Управляем аккаунтами
Ну а последний элемент нашей панели — System Language — это просто установка системной локали, в нашем случае ru_RU.utf8 (рис.4.16). Помнится, мы это проделали на стадии установки, но если принятая тогда локаль чем-либо не понравилась, никто нас к ней цепями не приковывал — череэ рассматриваемый элемент Zenpanel'и мы легко исправим свою ошибку.

Рис. 4.16. Неправильная локаль при инсталляции? Исправляем
Вот и всё, что можно (и нужно) сделать с помощью Zenpanel'и. А теперь давайте посмотрим, чего из необходимого мы через неё сделать не смогли.
В первую очередь, это — доведение до ума русификации оконной системы X: чтение русских текстов возможно сразу после инталляции (за счет того, что шрифты с кириллицей наличествуют в системе и должным образом прописаны в соответствующем конфигурационном файле), а вот ввод кириллических символов пока невозможен.
Что же, исправляем это упущение — для чего нам понадобится вручную отредактировать файл /etc/X11/xorg.conf. Сделать это, получив предварительно права администратора, можно в любом текстовом редакторе — я для таких целей, как говорилось в одной из интермедий, ныне использую nano. Итак,
$ su[вводим пароль root'а]
# nano /etc/X11/xorg.conf
Отыскиваем в открывшемся файле секцию вида
# Keyboard section
Сразу после установки системы она выглядит следующим образом:
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
# Option "Protocol" "Xqueue"
# Option "AutoRepeat" "500 5"
# Option "Xleds" "1 2 3"
# Option "XkbDisable"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
Option "XkbVariant" ""
Option "XkbOptions" ""
EndSection
Подробности устройства конфигурационного файла Иксов мы рассмотрим в главе, специально посвященной этой системе. Пока же нас интересуют только три последние строки, определяющие тип раскладки клавиатуры (XkbLayout ), ее вариант (XkbVariant) и переключатель между раскладками с индикацией текущей раскладки (XkbOptions).
Из них следует, что у нас подключена только одна раскладка клавиатуры — английская американская, без указания варианта (она вариантов и не имеет), и, естественно, без всякого переключателя, ибо переключаться не на что.
Для исправления сложившегося положения приводим указанные строки в следующий вид:
Option "XkbLayout" "us,ru" Option "XkbVariant" ",winkeys" Option "XkbOptions" "grp:caps_toggle,grp_led:scroll"
Теперь к американской раскладке клавиатуры добавилась русская (us,ru), причем по умолчанию по прежнему включается первая.
Вариант русской раскладки определен как winkeys, что не следует путать с win-кодировкой ввода, вариант означает всего-навсего тип маркировки клавиш, и выбранный нами соответствует тому, что нарисовано на вашей клавиатуре — прочие варианты маркировок, такие, как копия пишущей машинки или DOS-маркировка, давно сошли со сцены. Обращаем внимание на запятую перед словом winkeys: она символизирует то, что значение варианта относится только ко второй раскладке из предыдущей строки (ru), а для первой вариант не определен.
И, наконец, значение XkbOptions расшифровывается так: в качестве переключателя с латиницы на кириллицу используется клавиша CapsLock — grp:caps_toggle, фиксация верхнего регистра при этом осуществляется комбинацией Shift+CapsLock, а индикатор включения второй раскладки — загорание лампочки scrollock.
Разумеется, никто не запрещает установить другой переключатель — доступные значения их можно посмотреть в файле X11/xkb/rules/xfree86.lst. Ну а индикаторов на клавиатуре максимум три, так что выбирать можно только из grp_led:num, grp_led:caps и grp_led:scroll.
Кстати, нынче Иксы позволяют определять более двух раскладок клавиатуры и устанавливать для них нециклические (то есть привязанные к строго определенной клавише или их сочетанию) переключатели. Всё это мы досконально рассмотрим в главе про оконную систему Икс.
А пока глянем, что нам еще остается сделать относительно конфигурирования Иксов. Кажется, особенно нечего — разве что добавить кириллических шрифтов. Правда, в штатной поставке Zenwalk имеются гарнитуры семейства DejaVu и Liberation — на мой взгляд, их более чем достаточно для любых целей. Однако многие пользователи света белого не взвидят, если их лишить любимых шрифтов от сами знаете кого. Их нет ни на дистрибутивном носителе Zenwalk, ни даже в его репозиториях. Но мне ли учить таких пользователей, откуда эти шрифты берутся? Ну а мы с вами знаем, что берутся они совершенно законным образом из пакета corefonts почти любого дистрибутива, хотя в некоторых из них он может носить другое имя. Правда, самих шрифтов в этом пакете нет — их надо извлечь (в формате *.cab) посредством штатных средств того самого дистрибутива и распаковать специально для того придуманной утилитой cabextract. После чего просто скопировать в надлежащий каталог — а в Zenwalk'е для хранения всех шрифтов TTF предназначен каталог /usr/share/fonts/TTF. Всё, после копирования туда наших (точнее, как раз «не наших») шрифтов и перезапуска сеанса Иксов они доступны для системы и приложений. Никаких остальных телодвижений с некоторых пор больше делать не нужно.
Аналогичным способом можно поступить и с любыми другими шрифтами, в которых возникнет необходимость. На чем Иксовые развлечения в первом приближении можно считать законченными.
А теперь вернемся в консоль. Как я уже говорил, после манипуляций через Zenpanel мы получили возможность и читать здесь русские буквы, и набирать их с клавиатуры (переключившись на кириллическую раскладку через RightAlt+Shift). Однако установленный при этом по умолчанию шрифт, хоть и вполне читаем, далек от эстетического совершенства. Исправляем этот огрех — всё сказанное ниже прошу пока принимать как обычные рецепты, смысл наших действий прояснится в дальнейшем, после прочтения соответствующих глав. Это требует сначала установки пакета terminus-font, о которых давно и немало говорилось (например, здесь). Для чего, получив права администратора, выполняем команду:
# netpkg terminus-font
Теперь в каталоге, содержащем шрифты для консоли, в дополнение к наличествующему ранее изобилию, появляются шрифты вида ter-*. Выбираем среди них подходящий — ими будут или ter-u16f.psf.gz, если в консоли используется фреймбуфер (а по умолчанию так и есть), или ter-u16b.psf.gz, если консоль у нас чисто текстовая. Почему — расскажу в свое время, а пока просто поверьте, что «так лучше, Лёня».
Теперь обеспечиваем загрузку выбранного шрифта при старте машины, для чего в файле /etc/rc.d/rc.font, ставим ремарку на единственную умолчальную строку
# setfont -v
а вместо этого вписываем:
unicode_start ter-u16f.psf.gz
Теперь, после реинициализации системы, мы сможем наблюдать в консоли максимально красивые шрифты из придуманных человечеством для текстового режима.
Правда, говорят, что русификацию консоли в Zenwalk можно выполнить «в одно касание», установив соответствующий пакет c этого сайта. Правда, сам я этого не проделывал — кому интересно, могут попробовать и рассказать о результатах .
Для полного консольного счастья нам не хватает одного — чтобы в консоли работала мышь. Так что озаботимся настройкой запуска службы консольной мыши. Каюсь, именно с этого надо было бы начать все разговоры о ручных настройках консольного режима — уж больно легко они выполняются посредством мышиного copy&paste между виртуальными консолями. Но лучше поздно, чем никогда.
Раньше установщик Zenwalk (кстати, один из немногих Linux-дистро) трепетно относился к этому вопросу, и предлагал включить сервис gpm (именно он отвечает за работу мыши в консоли) еще на стадии инсталляции. В последней версии этого не наблюдается — и даже в Startup services Zenpanel'и включение службы консольной мыши не предусмотрено. Что же, на то нам и даны руки, чтобы править ими то, что не учёл майнтайнер.
Для начала выясняем, что файла, ответственного за управление службой gpm, в каталоге /etc/rc.d не имеется. А он должен быть именно там, и имя ему обязано быть — rc.gpm. Создаем его (от имени и по поручению root'а):
# touch /etc/rc.d/rc.gpm
Теперь осталось только придумать, что в нем должно содержаться. Да ничего особенного, кроме команды запуска gpm, требующей двух опций — типа протокола и имени файла устройства, с соответствующими значениями. Наиболее вероятно, что в современных условиях соответствующая строка будет иметь следующий вид:
gpm -t imps2 -m /dev/input/mice
где -t imps2 говорит о том, что мы имеем дело с мышью, обладающей колёсиком скроллинга (подходит практически ко всем современным мышам), а -m /dev/input/mice — имя файла мышиного устройства. Впрочем, относительно последнего лучше «свериться с картотекой» посредством команды:
$ ls /dev/input/
Вот и всё, теперь после реинициализации системы мы будем наблюдать квадратик мышиного курсора. Никаких иных усилий для этого прилагать не нужно, поскольку непосредственно запуск службы консольной мыши выполняется из сценария ./etc/rc.d/rc.M, отвечающего за все сервисы, запускаемые в обоих многопользовательских режимах — консольном (runlevel 3) и графическом (runlevel 4).
И, наконец, последнее из имеющего отношение консоли — хотя на этот раз не только к ней. При всех ручных настройках явным образом указывалось или молчаливо предполагалось, что для их выполнения необходимо предварительно получить права администратора, для чего предлагалась команда su с последующим вводом пароля суперпользователя. И — это важно с позиций безопасности — выхода из режима root'а командой exit сразу, как только его полномочия больше не потребуются.
Иногда, когда от лица root'а требуется много действий, команда su действительно удобна. Но обычно для выполнения единичных административных команд, лучше прибегнуть к командам sudo или, по контексту, sudoedit. Первая как раз и предназначена для выполнения единичной директивы от имени суперпользователя. Вторая же служит специально для редактирования общесистемных конфигурационных файлов, вызывая некий умолчальный редактор, определенный в переменной EDIT пользовательского профильного файла (если таковая не определена, вызывается Vim). В отличие от su, обе эти команды при запуске требуют ввода пароля не администратора, а пользователя, запускающего команду. Однако для комфортного использования этих команд потребуется некоторая, хотя и не сложная, настройка. Тем, кто готов ее проделать, и адресованы следующие несколько абзацев.
Конфигурационный файл для sudo и sudoedit - /etc/sudoers. По умолчанию в Zenwalk он запрещает доступ пользователю к большинству необходимых для настройки команд. Исправляется это так: получаем права администратора пока еще командой su, открываем в текстовом редакторе файл /etc/sudoers (он закрыт для обычных пользователей не только на запись, но и на чтение) и находим в нем строки
# Uncomment to allow people in group wheel to run all commands # %wheel ALL=(ALL) ALL
со второй из которых снимаем знак комментария. Таким образом, члены группы wheel получают возможность запуска через sudo всех команд вообще — именно поэтому на стадии установки я и предлагал включить создаваемого пользователя в эту группу. Это происходит, как уже говорилось, по вводе собственного пароля пользователя.
Если снять комментарий с одной из следующих строк, а именно
# %wheel ALL=(ALL) NOPASSWD: ALL
можно получить беспарольный доступ к административным командам. Впрочем, если это и делать (а я бы это делать не стал) — то только на время первичных настроек, после чего вернуть доступ по паролю взад.
Теперь пользователь, введя команду
$ sudoedit path2/config_file
и свой собственный пароль, может отредактировать любой общесистемный конфиг с помощью своего любимого редактора, определенного переменной
export EDITOR="имя_редактора"
в его профильном файле (скорее, всего, это будет ~/.bashrc).
Вот и всё, что касается первичных пользовательских настроек свежеустановленного Zenwalk'а, как инструментальных, так и ручных. В ближайшей интермедии мы посмотрим, как инструментальные действия отражаются на конфигурационных файлах — чтобы, в случае необходимости, осознанно вносить требующиеся просто в текстовом редакторе.