Debian 7 или Какого лешего

Debian — первый серьёзный дистрибутив автора, тёплая и нежная дружба с которым длилась достаточно долго, до перехода на archlinux. Помнится, просидев на Ubuntu пару месяцев и смекнув, что с этим дистрибутивом ничему толком не научишься (ибо не способствует он получению новых знаний в освоении linux — слишком дружелюбен и услужлив, с ним даже не приходится знать, что такое консоль), зимой 2009 года на домашний компьютер было решено поставить Debian. Много воды утекло с тех пор, много дистрибутивов было испробовано и теперь, после выхода Debian Wheezy, захотелось снова взглянуть на старого друга... да не тут-то было. Впечатления он оставил, прямо-таки скажем, неоднозначные.

Действия по загрузке и установке дистрибутива можно найти на множестве ресурсов также, как и статьи о вопросе настройке энергопотребления. Ничего кардинально нового замечено не было, поэтому начнём с экрана приветствия. По ходу установки из трёх возможных графических сред был выбран xfce, который и встретил своим нерусифицированным хмурым лицом. Вбив логин и пароль, оставалось только войти в систему и воскликнуть: «Какого лешего?». Отсутствие русификации, отвратительные шрифты, невозможность установить некоторые полюбившиеся уже приложения и предложение довольствоваться их устаревшими аналогами... много любопытного поджидает путешественников в мир Debian. Упёртость не позволила бросить дистрибутив. Оставить же его в виде «как есть» не позволила совесть.

Шаг первый: замена ядра

Прежде всего следовало разобраться с ядром, в котором мало того, что не была использована возможность переключения между видеокартами, так она вообще ещё не поддерживалась: версия ядра 3.2. Выйти из положения можно двумя способами: либо установить свежее дистрибутивное ядро (с патчами от разработчиков самого debian), либо собрать ванильное.

Сначала приводистя пример установки ядра из backports (хотя нет, и там тухло) или лучше из experimental — единственной ветки, где имеется софт без бороды. Подключаем один из последних двух репозиториев:

# /etc/apt/source.list

deb http://debian.nsu.ru/debian/ wheezy main non-free contrib
deb-src http://debian.nsu.ru/debian/ wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-backports main
deb http://ftp.debian.org/debian experimental main

Даём debian'у сигнал о том, что список репозиториев обновился

# aptitude update

Ставим свежее ядро. В примере из ветки experimental:

# aptitude search linux-image
# apt-get -t experimental install linux-image-3.8

Следующий метод предназначен для тех, кто как и автор поста, плюнув на ядра дистрибутива, захочет отправится в путь за ванильным ядром на kernel.org. Как это оговаривалось уже не раз в других заметках, нужно скачать последнюю стабильную версию ядра и распаковать её в /usr/src:

$ wget -c http://kernel.org/pub/linux/kernel/v3.x/linux-3.8.11.tar.xz
# mv linux-3.8.11.tar.xz /usr/src
# tar xvf linux-3.8.11.tar.xz

После чего собрать ядро с нужными параметрами и дать команду на сборку и установку самого ядра, а также всех его модулей:

# make menuconfig
# make bzImage modules modules_install install

В результате в /boot разделе должно появиться ядро с указанной версией и его загрузочный образ (initrd). Дебиан даже потрудился перконфигурировать настройки загрузчика grub2, найдя и включив новое ядро в список. Впрочем, вышеуказанные действия легко выполнить и вручную, сгенерировать образ и обновить настройки загрузчика можно двумя соответствующими командами:

# mkinitramfs -o /boot/initrd-3.8.11
# grub-mkconfig -o /boot/grub/grub.cfg
grub-mkconfig

Чтобы добиться искомого результата (отключить дискретное видео), нужно сделать ещё несколько телодвижений:

1. Убедиться, что установлен драйвер видеокарты, применительно к intel выглядит так:

$ aptitude search intel
i A libdrm-intel i A xserver-xorg-video-intel

Если установленных пакетов не найдено, доустановить их.

2. Установить linux-firmware-nonfree

3. Добавить debugfs в /ets/fstab

none  /sys/kernel/debug debugfs defaults 0 0

4. Добавить скрипт в /etc/rc.local, вот так:

# By default this script does nothing
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
exit 0

Шаг второй: русификация интерфейса, настройки ввода

Русификация всего и вся проходит быстро и безболезненно внесением одной лишь записи в /etc/default/locale:

LANG="ru_RU.UTF-8"

Следуя какой-то своей особой логике, Debian предлагает выбор русского языка при установке, но это никоим образом не отражается на практике: что ж, русифицируем самостоятельно.

Раскладки клавиатуры также не предлагают того, что хочется — не беда. Сделаем переключение через Alt + Shift , да чтобы раскладку было видно по индикатору Caps Lock.

layout

Настройка раскладки клавиатуры, поведения тачпада... мелочи жизни:

# /etc/X11/xorg.conf.d/10-evdev.conf
#
Section "InputClass"
    Identifier "evdev keyboard catchall"
    MatchIsKeyboard "on"
    MatchDevicePath "/dev/input/event*"
Driver "evdev" EndSection

# /etc/X11/xorg.conf.d/20-keyboard-layout.conf
#
Section "InputClass"
    Identifier "Keyboard Defaults"
    MatchIsKeyboard "yes"
    Option "XkbLayout" "us,ru"
    Option "XkbOptions" "grp:alt_shift_toggle, grp_led:caps"
EndSection

# /etc/X11/xorg.conf.d/50-synaptics.conf
#
Section "InputClass"
    Identifier "touchpad catchall"
    Driver "synaptics"
    MatchIsTouchpad "on"
    Option "TapButton1" "1"
    Option "TapButton2" "2"
    Option "TapButton3" "3"
    Option "VertEdgeScroll" "on"
    Option "VertTwoFingerScroll" "on"
    Option "HorizEdgeScroll" "on"
    Option "HorizTwoFingerScroll" "on"
    Option "CircularScrolling" "on"
    Option "CircScrollTrigger" "2"
    Option "EmulateTwoFingerMinZ" "40"
    Option "EmulateTwoFingerMinW" "8"
    Option "CoastingSpeed" "0"
    MatchDevicePath "/dev/input/event*"
EndSection
    Section "InputClass"
    Identifier "touchpad ignore duplicates"
    MatchIsTouchpad "on"
    MatchOS "Linux"
    MatchDevicePath "/dev/input/mouse*"
    Option "Ignore" "on"
EndSection
    Section "InputClass"
    Identifier "Default clickpad buttons"
    MatchDriver "synaptics"
    Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
EndSection

Шаг третий: настройка шрифтов

Ни в одной другой ОС не доведётся неискушённому пользователю видеть такое ужасающее отображение шрифта как в Debian. Вообще, надо сказать, что шрифты были и во многом остаются главной проблемой всех linux-дистрибутивов. В последнее время исправить это досадное недоразумение призван патч infinality, который действительно может невозможное.

В debian имеется «куцая» утилита для настройки отображения шрифта. Возможности её довольно скудны. Для сравнения в gentoo при помощи eselect можно сделать намного-намного больше.

gentoo

gentoo

debian

$ sudo dpkg-reconfigure fontconfig-config
autohinter fontconfig font-zoom

Шрифт в Debian изначально не имеет сглаживания и выглядит разряженным. Настройки .fonts.conf уверенности в светлом будущем не прибавляют: либо шрифт тонкий и зазубренный как в Windows, либо просто «мыло» даже с выставленным параметром rgba - none.

Ситуация немного улучшается для обычных шрифтов при использовании infinality, но шрифт семейства monospace с небольшим кеглем представляет собой всё то же мыло в отличие от эффекта того же infinality в gentoo.

Может быть, знающие линуксоиды наставят автора на путь истинный и укажут наиболее простое и красивое решение указанной проблемы. Всех, у кого есть здравые мысли на этот счёт, прошу выразить свою критику и негодование вместе с примерами настройки в комментариях. Но, сдаётся мне, без наложения патчей от Убунты здесь не обойтись.

Шаг четвёртый: автозапуск

Автор придерживается убеждения, что хороший дистрибутив не тот, который думает за пользователя, но тот, что даёт пользователю право выбора и право быть самодержцем в своей операционной системе. Такой дистибутив по определению должен быть прозрачен как слеза младенца и делать только то, что ему указано — ничего сверх этого. Наш друг Дебиан мало того, что славится своей устрашающей системой инициализации, так ещё и, с позволения сказать, шкодничает. При установке какого-либо демона он автоматически помещает его в автозапуск, чего хороший дистрибутив делать не станет. В итоге при инициализации системы происходит и запуск всех демонов, большинство из которых совершенно не нужны в повседневной работе. Таким образом, дабы система загружалась быстрее и поглощала меньше ресурсов, надобно всё лишнее поотключать.

Для этого нужно просмотреть список автозагрузки и выдернуть из него лишний хлам. Первое можно сделать, просмотрев содержимое каталога /etc/init.d либо используя утилиту chkconfig:

chkconfig

Удалить из автозапуска: # update-rc.d -f cups remove или # insserv -r cups (≥ debian 6), где cups — искомый демон.

Команда добавления в автозапуск, которая вряд ли когда-либо понадобится ввиду излишней интеллектуальности Дебиана:

# update-rc.d cups defaults # или insserv cups defaults (≥ debian 6)

Прочее

Также были отмечены некоторые странности как то: в процессе установки была выбрана возможность входа от суперпользователя. Тем не менее, Debian не предложил создать для него пароль и при входе в систему рут оказался беспарольным. Разумеется, это тоже не представляет большой проблемы и исправляется командой passwd.

К странностям новой версии можно отнести добродушное пожелание ОС напоминать о выходе новой версии... Ubuntu. Но, скажите, какого лешего?

ubuntu in debian

С xfce сдружиться не получилось. В конечном варианте остался openbox, благодяря которому рабочий стол приобрёл приятный и в то же время минималистичный вид.

debian openbox

«Умолчательные» приложения не вдохновляют на совершение трудовых подвигов. Из нужного автору в огромном стандартном репозитории Debian'a не нашлось места для spacefm, compton, sublime text 2. Так на кой чёрт мне репозиторий в 37.000 пакетов, если в нём нет нескольких горячо любимых программ?

Подведение итогов

Собственно, зачем это всё затевалось? Во-первых, появилось желание одним глазком посмотреть на любимый когда-то дистрибутив. Во-вторых, возникла надобность поставить на внешний диск надёжную рабочую лошадку, не требующую ухода (таково моё мнение о Debain в целом). Надо также отметить, что данный пост, скорее всего, будет последним касающимся установки/настройки дистрибутива, если только автору не взбредёт в голову поставить Slackware Linux. Оставшиеся самобытные ОС — Gentoo, Archlinux — уже были рассмотрены ранее, иные же являются лишь их потомками, зачастую имеют простой графический установщик и мало чем отличаются в настройке.

Претензии к Wheezy:

  • удручающе старый софт (прежде всего версия ядра)
  • невозможно без слёз смотреть на шрифт
  • на то, что пользователи «красноглазых» дистрибутивов настраивают с пол-оборота, в дебиане приходится потратить изрядное количество времени
  • нет привычных проверенных программ, которые широко используются в подавляющем большинстве дистрибутивов
  • система считает себя умнее хозяина (одна из причин, почему так много дружелюбных к пользователю дистрибутивов основано на Дебиане)

Итог: ностальгия быстро улетучилась, Дебиан остался на внешнем жёстком диске в качестве запасной рабочей лошадки и бэкап-хранилища для /home каталога.