Головний герой сьогоднішньої статті — Леннарт Поттерінґ (Lennart Poettering) — співробітник RedHat і автор декількох «мегакорисних» програм та ідей. Витвори цього персонажа мають єдину перевагу: все красиво виглядає. Як воно все працює середньостатистичні користувачі не мають ані найменшого уявлення, більш досвідчені — плюються і стараються викинути куди подалі, а програмісти, які бодай частково розібралися в коді взагалі хапаються за голови від кількості знайдених проблем з безпекою.
Я відношу себе до другої категорії, тому сьогодні розповім як максимально безболісно позбутися плодів життєдіяльності пана Поттерінґа.
1. systemd — менеджер завантаження системи. Настільки «чудовий», що під огріхи його дизайну довелося поміняти структуру і порядок монтування(підключення) системних папок. В порівняльній табличці з альтернативними програмами разюче виривається вперед, пропонуючи цілу купу функціоналу, який інші менеджери завантаження не надають. Той нюанс, що цей функціонал зовсім не належить до функцій менеджера завантаження, схоже, ані автора systemd — пана Поттерінґа, ані авторів таблички (не здивуюся, якщо це той же п. Поттерінґ) не хвилює. Ще один «штрих до портрета»: systemd нагадав мені, що колись давним-давно в мене був комп’ютер з AT-шним блоком живлення, який після завершення роботи треба було вимикати з кнопки. Надпис System halted вже давно не «тішив око», а з появою systemd — ось він.
З Mandriva Linux systemd випилюється наступним чином: #прибираємо частину, яка відповідає за завантаження
rpm -e systemd-sysvinit --nodeps
#ставимо замість нього старий добрий оригінальний sysvinit
urpmi sysvinit --force --replacefiles
#прибираємо правила systemd-шного завантаження
rm -Rf /etc/systemd
Фінальний штрих: до параметрів ядра слід додати стрічку nopinit, яка забороняє використовувати в стартових скриптах утиліту prcsys. Якщо цього не зробити — отримаєте систему, яка стартує п’яте почерез десяте. Особисто в мене без вимикання prcsys графіка не стартувала. Як варіант: можна поправити скрипт /etc/rc.d/rc і викинути дві умови if, які передають керування на prcsys.
Повністю вилучити systemd на жаль неможливо, бо п. Поттерінґ тісно інтегрував його з udev — набором скриптів і утиліт для визначення обладнання і обробки його динамічного підключення.
Перезавантажуємося — бачимо втричі менше «тєлодвіженій», час завантаження (одна з афішованих переваг systemd) той же, а то й менший, якщо є потреба стартувати щось не передбачене системними скриптами (віртуальні машини, наприклад) — пишете свій скрипт, кладете в відповідну папку і все працює. Як досягнути бажаного ефекту з systemd — мало хто розібрався до кінця. Про System halted і ручне вимикання знову забуваємо...
2. pulseaudio — надбудова над звуковою системою ALSA, яка підставляє себе як віртуальну звукову картку, перехоплює всі звукові потоки, мікшує і віддає на реальну картку.«Гіперзмістовна» поведінка сягає історичними коріннями до часів esound, який був створений, коли ALSA була ще в зародковому стані і не вміла самостійно змікшувати вивід різних програм (хто з процесів перший захоплював звукову картку, того звук і грав). Проблема неактуальна вже років з десять, а «затичка» продовжує своє існування. Ще би вона робила то нормально — може хай би собі і жила, але ж в продуктів п. Поттерінґа є чудова риса: вони працюють невідомо як. Тому, або відразу, або після кількох оновлень ви обов’язково помітите, що звук кудись зник, або присутній дуже вибірково. Вихід — перейти на чистий драйвер ALSA.
Для цього йдемо в папку /etc/sound/profiles, дивимося на підпапки alsa, pulse і символічне посилання current. Нехитра логіка підказує перенаправити посилання current на підпапку alsa: rm -f current
ln -s alsa current
Звук з’являється моментально у всіх програмах, що запущені після цієї маніпуляції, проте для перезапуску регулятора гучності і звуків оболонки робочого столу бажано принаймні вийти-ввійти, а краще перезавантажити систему.
Додатково не пошкодить вилучити базовий пакет сервера pulseaudio: rpm -e --nodeps pulseaudio
Як і у випадку з systemd повністю вилучити сліди pulseaudio з системи неможливо — дуже багато програм скомпільовані з підтримкою його бібліотек і вимагають їх наявності в системі.
3. NetworkManager — як неважко здогадатися з назви — менеджер мережних підключень. Якщо ви мали необережність змінити якісь налаштування з його допомогою, то будьте готові до того, що мережа у вас з’єднається лише після входу користувача в систему. Причому чи будь-якого чи того, яким проводилися налаштування — як пощастить.
На щастя системна утиліта drakconnect має опцію «Дозволити NetworkManager'y контролювати це з’єднання». Знімаємо «пташку», налаштовуємо все через сам drakconnect і забуваємо про проблеми.
Інші новації Леннарта Поттерінґа, як то бінарні журнали, новий завантажувач, скидання всіх виконуваних файлів в одну папку і невідомо що ще (злі язики кажуть, що він скоро в Linux'i запропонує зробити реєстр) наразі не прижилися. І це добре ;-)
Працює на AutoGenCMS 0.2.6