Перейти до змісту
View in the app

A better way to browse. Learn more.

Файна Україна

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Посібник зі встановлення та налаштування Void Linux

Рекомендовані відповіді

Опубліковано
  • Адміністратор

Що таке 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 псевдографічного інсталятора.

Таке рішення обумовлено такими причинами:

  1. Void має потужний інструментарій xtools, який спрощує процес установки (xchroot);

  2. пакетний менеджер xbps дозволяє швидко створити корінь робочої системи;

  3. Велика гнучкість в установці та налаштуванні системи.

Створення завантажувального носія

Я рекомендую завантажити "живий" образ з 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 як робоче оточення завершено. Тепер можна насолодитися цією ОС на робочому столі, хоча багато чого стало зрозуміло вже в процесі установки.

  1. Швидкий пакетний менеджер xbps.

  2. Наявність вибору стандартної бібліотеки Сі.

  3. Незалежність від інших дистрибутивів та наявність своєї екосистеми ПЗ.

  4. Гнучкість у налаштуванні під свої потреби.

images.png

Але не обійшлося, звісно, без ложки дьогтю.

Мене завжди бентежив принцип найменування пакетів (або його відсутність) у 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, які шукають легковажний і налаштований дистрибутив з можливістю вибору стандартної бібліотеки мови Сі.

Для публікації повідомлень створіть обліковий запис або авторизуйтесь

Акаунт

Навігація

Пошук

Пошук

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.