Опубліковано 19 липня19 лип Адміністратор Що таке Void Linux?Void Linux - це незалежний дистрибутив, який використовує систему ініціалізації runit та пакетний менеджер xbps з потужною системою збирання пакетів xbps-src. Дистрибутив доступний у двох версіях: з бібліотекою Сі glibc, яка використовується в більшості інших дистрибутивів, та з альтернативною бібліотекою musl, спроектованою для більшої компактності та простоти.Void пропонує альтернативу найпопулярнішим рішенням у світі Linux. Він не використовує такі компоненти, як systemd, rpm або dpkg. При цьому дистрибутив залишається досить доброзичливим та зручним для повсякденного використання. Якщо ви вже маєте досвід роботи з Linux, варто ознайомитися з Void Linux.Інший дистрибутив, який я можу порекомендувати, – це Alpine Linux. Однак, оскільки Alpine використовує тільки musl, він може не підтримувати деякі апаратні компоненти, які потребують пропрієтарних драйверів (наприклад, nvidia, broadcom).Void Linux завдяки можливості вибору стандартної бібліотеки Сі уникає цієї проблеми.Опис планованої конфігураціїЯк графічне оточення я задіяю Xfce, а як звуковий сервер - pipewire.Встановлювати Void Linux будемо через chroot, незважаючи на наявність у Void псевдографічного інсталятора.Таке рішення обумовлено такими причинами:Void має потужний інструментарій xtools, який спрощує процес установки (xchroot);пакетний менеджер xbps дозволяє швидко створити корінь робочої системи;Велика гнучкість в установці та налаштуванні системи.Створення завантажувального носіяЯ рекомендую завантажити "живий" образ з Xfce, щоб проводити установку та конфігурування системи одразу з приємного графічного інтерфейсу.Завантажуємо останній актуальний "живий" образ.wget https://repo-default.voidlinux.org/live/current/void-live-x86_64-20250202-xfce.isoЗнаходимо файл носія, який запишемо завантажений образ.lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 1 30G 0 disk ├─sda1 8:1 1 1.3G 0 part └─sda2 8:2 1 32M 0 part nvme0n1 259:0 0 238.5G 0 disk ├─nvme0n1p1 259:1 0 127M 0 part ├─nvme0n1p2 259:2 0 70G 0 part ├─nvme0n1p3 259:3 0 124M 0 part /boot/efi ├─nvme0n1p4 259:4 0 70G 0 part / ├─nvme0n1p5 259:5 0 124M 0 part └─nvme0n1p6 259:6 0 70G 0 part Записуємо образ на носій.dd bs=4M if=void-live-x86_64-20250202-xfce.iso of=/dev/sdaІ переконуємось, що всі дані на нього були записані.syncПідготовка файлової системиЗавантажуємося в live-систему.Ймовірно, є сенс вибрати варіант RAM, щоб live-система повністю завантажилася в ОЗУ комп'ютера.Це збільшить швидкодію та чуйність live-системи.Відкриваємо емулятор терміналу і підвищуємо наші права до суперкористувача. Пароль voidlinux.su -Для зручності роботи з командним рядком будемо працювати в емуляторі терміналу bash.bashВстановлювати Void я буду на розділи, які зараз використовує інший дистрибутив, тому етап створення розмітки диска буде пропущено.Форматуємо розділ /dev/nvmen1p3 для завантажувача та розділ /dev/nvmen1p4 для кореня системи.mkfs.vfat /dev/nvmen1p3 mkfs.ext4 /dev/nvmen1p4Монтуємо майбутні завантажувальний та кореневий розділи системи у каталог /mnt live-системи, щоб продовжити над ними роботу.mount /dev/sda2 /mnt/ mkdir -p /mnt/boot/efi/ mount /dev/sda1 /mnt/boot/efi/Якщо ви, як і я, використовуєте live-систему з графічним оточенням, то, ймовірно, вам доведеться видалити каталог зі сміттям, яке чомусь оточення вважало за потрібне створити.rm -rf /mnt/lost+foundСтворення кореня системи за допомогою пакетного менеджера XBPSСтворюємо змінні оточення: REPO, яка міститиме адресу віддаленого репозиторію, та ARCH, яка міститиме інформацію про архітектуру комп'ютера.Якщо ви бажаєте використовувати Void з бібліотекою musl, то вкажіть адресу:https://repo-default.voidlinux.org/current/muslЯ ж встановлюватиму версію з glibc:REPO=https://repo-default.voidlinux.org/current ARCH=x86_64Копіюємо з live-системи ключі для автентифікації пакетів.mkdir -p /mnt/var/db/xbps/keys cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/Встановлюється майбутня система однією командою. Дуже зручно!XBPS_ARCH=$ARCH xbps-install -S -r /mnt -R "$REPO" base-systemНалаштування базової системиГенеруємо файл /etc/fstab, що містить параметри автомонтажу розділів майбутньої системи за допомогою утиліти зі складу інструментарію xtools.# xgenfstab -U /mnt > /mnt/etc/fstabПідмінюємо корінь live-системи на корінь системи, що встановлюється, за допомогою утиліти зі складу xtools.xchroot /mnt /bin/bashЗадаємо ім'я комп'ютера.[xchroot /mnt] # vi /etc/hostname voidgravНалаштовуємо параметри системи.Я використовую us розкладку клавіатури і en_US.UTF-8 локаль. [xchroot /mnt] # vi /etc/rc.conf HOSTNAME="voidgrav" HARDWARECLOCK="UTC" TIMEZONE="Europe/Moscow" KEYMAP="us" FONT="lat9w-16" CGROUP_MODE=unified SEEDING_SKIP_CREDIT=false [xchroot /mnt] # vi /etc/default/libc-locales en_US.UTF-8 UTF-8 [xchroot /mnt] vi /etc/locale.conf LANG=en_US.UTF-8 LC_LOCALE=CЗастосовуємо наші зміни.[xchroot /mnt] # xbps-reconfigure -f glibc-localesЗадаємо пароль суперкористувача.[xchroot /mnt] # passwdТакож встановимо низку пакетів, які не є обов'язковими, але, ймовірно, нам все одно доведеться їх встановити та налаштувати у майбутньому.Наприклад, коли вони опиняться в списку залежностей програм, що встановлюються.Встановимо системну шину dbus.[xchroot /mnt] # xbps-install -S dbusПоставимо сервіс dbus в автозапуск.[xchroot /mnt] # ln -s /etc/sv/dbus /etc/runit/runsvdir/defaultНаступний пакет - NetworkManager. Цілком можливо, що ви не захочете додавати його до мінімалістичної системи. В якості альтернативи я можу порекомендувати використовувати для керування мережевими підключеннями wpa_supplicant, який встановлений Void.[xchroot /mnt] # xbps-install -S NetworkManagerПоставимо NetworkManager в автозапуск.[xchroot /mnt] # ln -s /etc/sv/NetworkManager /etc/runit/runsvdir/defaultВстановлення завантажувача ОСВстановимо grub.[xchroot /mnt] # xbps-install grub grub-x86_64-efiДля систем із UEFI.[xchroot /mnt] # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Void"Переконфігуруємо всі пакети, щоб усі зміни набули чинності.[xchroot /mnt] # xbps-reconfigure -faПісля цього виходимо з chroot, виймаємо інсталяційний носій і перезавантажуємося в нову ОС.[xchroot /mnt] # exit # umount -R /mnt # shutdown -r nowНалагодження налаштування ОСДопоки ми не змінили командну оболонку з sh на bash давайте зробимо це вручну.bashВстановимо X-сервер xorg, графічний менеджер входу lightdm та менеджер сеансів elogind.xbps-install xorg lightdm lightdm-gtk-greeter elogindНалаштуємо автозапуск для пакетів, що встановилися.ln -s /etc/sv/polkitd /etc/runit/runsvdir/default ln -s /etc/sv/elogind /etc/runit/runsvdir/default ln -s /etc/sv/lightdm /etc/runit/runsvdir/defaultЗавантажуємо мета-пакет із базовим оточенням Xfce.xbps-install xfce4Настав час поміняти sh на bash :)vi /etc/passwd root:x:0:0:root:/root:/bin/bashСтворимо непривілейованого користувача.Обов'язково додаємо користувача до груп audio, video (для PipeWire), network (для NetworkManager) та input (для libinput).useradd -m -s /bin/bash -c 'Ulysses Apokin' \ -G floppy,disk,audio,video,adm,cdrom,optical,scanner,network,input,users ulyssesЗадамо пароль для створеного користувача.passwd ulyssesПерезавантажуємось у графічний сеанс.rebootВстановимо пакети ALSA.xbps-install alsa-firmware alsa-utilsПоставимо ALSA в автозапуск.ln -s /etc/sv/alsa /etc/runit/runsvdir/defaultЯк мультимедійний сервер встановимо pipewire. Як графічний інтерфейс для керування звуковими налаштуваннями системи задіємо pavucontrol.xbps-install pipewire wireplumber pavucontrolСтворимо конфігураційні файли для pipewire.mkdir -p /etc/pipewire/pipewire.conf.d ln -s /usr/share/examples/wireplumber/10-wireplumber.conf /etc/pipewire/pipewire.conf.d/ ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf /etc/pipewire/pipewire.conf.d/Перезавантажуємось.Також необхідно буде в налаштуваннях автозапуску Xfce прописати автозапуск pipewire.Робиться це так.Settings -> Session and Startup -> Application Autostart -> Add : Command: pipewire Trigger: On LoginАбо створіть sh-скрипт і налаштуйте його автозапуск за допомогою системи ініціалізації runit. Однак зверніть увагу, що pipewire має запускатися після того, як сесія X11 або Wayland завантажилася, оскільки Void як менеджер сесій для PipeWire використовується WirePlumber.rebootМожливо, ви також захочете скористатися наступними плагінами зі складу Xfce.xbps-install orage xfce4-battery-plugin \ xfce4-clipman-plugin xfce4-pulseaudio-plugin \ xfce4-screenshooter xfce4-xkb-pluginРезультат та суб'єктивна думка про дистрибутивУстановка та налаштування Void Linux як робоче оточення завершено. Тепер можна насолодитися цією ОС на робочому столі, хоча багато чого стало зрозуміло вже в процесі установки.Швидкий пакетний менеджер xbps.Наявність вибору стандартної бібліотеки Сі.Незалежність від інших дистрибутивів та наявність своєї екосистеми ПЗ.Гнучкість у налаштуванні під свої потреби.Але не обійшлося, звісно, без ложки дьогтю.Мене завжди бентежив принцип найменування пакетів (або його відсутність) у Void. Наприклад, у шрифтів:ttf-ubuntu-font-family liberation-fonts-ttf font-liberation-narrow-ttf freefont-ttfАбо у NetworkManager:NetworkManager network-manager-appletАбо у CAD-систем:LibreCAD openscadНаскільки мені подобається пакетний менеджер xbps, який робить складання пакетів простим і легким для звичайних користувачів, на стільки ж мені не подобається система ініціалізації - runit. Відмова від концепції рівнів запусків, як на мене, є фатальним недоліком. Створювати свої послуги менш зручно, ніж у systemd і openrc. А виправити косяки в сервісах, що поставляються, важко. Наприклад, я зіткнувся з тим, що lightdm стартує пізніше графічного середовища при виході зі сну. І відповідно все висне. Те, що виправлялося б в openrc простою зміною runlevel, в runit вирішується нетривіальними стрибками по скриптах.Також мене бентежить, що спільна розробка Void ведеться на github. Мабуть, дається взнаки брак ресурсів у команди. Про це також свідчить те, що багато навіть ключових пакетів знаходяться у статусі orphaned і не мають постійних супроводжуючихНаступне не можна віднести до мінусів, оскільки це пояснюється філософією дистрибутива та його орієнтованістю на самостійну побудову ідеальної системи під себе. Іноді під час встановлення пакета не встановлюються всі його залежності, і пакет працює не так, як очікувалося. Наприклад, пакет pipewire не встановлює із собою пакет alsa-firmware. З цієї причини я довго не міг зрозуміти, чому я не маю звуку, хоча pipewire стверджував, що в нього все гаразд.Тим не менш, Void Linux буде хорошим вибором для досвідчених користувачів Linux, які шукають легковажний і налаштований дистрибутив з можливістю вибору стандартної бібліотеки мови Сі.
Для публікації повідомлень створіть обліковий запис або авторизуйтесь