Новий інструмент Decman для управління Arch Linux
Новий інструмент Decman для управління Arch Linux
Decman — це новий інструмент із великим потенціалом, який зацікавить просунутих користувачів Arch, особливо тих, хто сумує за підходом до управління системою в стилі NixOS або орієнтований на DevOps. Цей інструмент досяг своєї першої стабільної версії 1.0.
Основні можливості Decman
Decman управляє установкою Arch Linux, накладаючи оголошений стан системи (написаний безпосередньо на Python), замість застосування змін імперативно. У простій конфігурації ви вказуєте, які пакети повинні бути встановлені, які конфігураційні файли повинні існувати і які служби systemd потрібно активувати.
Ця дефініція є джерелом істини. Коли Decman виконується, він порівнює оголошену конфігурацію з поточною системою та застосовує лише необхідні зміни, щоб привести систему у відповідність з визначеним станом.
import decman
from decman import File, Directory
# Оголошення встановлених пакетів pacman
decman.pacman.packages |= {"base", "linux", "linux-firmware", "networkmanager", "ufw", "neovim"}
# Оголошення встановлених пакетів AUR
decman.aur.packages |= {"decman"}
# Оголошення конфігураційних файлів
decman.files["/etc/vconsole.conf"] = File(content="KEYMAP=us")
decman.files["/etc/pacman.conf"] = File(source_file="./dotfiles/pacman.conf")
# Оголошення цілого каталогу
decman.directories["/home/user/.config/nvim"] = Directory(source_directory="./dotfiles/nvim", owner="user")
# Переконатися, що юніт systemd активовано
decman.systemd.enabled_units |= {"NetworkManager.service"}
Переваги використання Decman
Цей інструмент підтримує нативні пакунки Pacman та пакунки AUR через окремі плагіни, що дозволяє обом керуватися декларативно. Конфігураційні файли можуть відстежуватися з вихідного каталогу та синхронізуватися з їх цільовими місцями, забезпечуючи потрібні права власності та дозволи.
Більш того, Decman також підтримує хуки, які виконують команди при зміні відстежуваних файлів або після оновлень системи. Це дозволяє реалізувати такі робочі процеси, як регенерація образів initramfs або додаткові кроки оновлення.
Служби systemd керуються через плагін systemd, що дозволяє активувати юніти в рамках оголошеної конфігурації. Також доступна підтримка Flatpak через спеціальний плагін, що дозволяє управляти додатками Flatpak разом із системними пакетами в одній декларативній системі.
Потенціал Decman для користувачів Arch
Як я вже згадував, Decman має великий потенціал і може замінити традиційні команди оновлення системи в повсякденному використанні. Замість того, щоб вручну запускати менеджери пакетів або допоміжні інструменти, ви просто повторно застосовуєте декларативну конфігурацію, запустивши Decman.
Це забезпечує, щоб встановлене програмне забезпечення, конфігураційні файли та служби залишалися узгодженими та відтворюваними з часом. На мою думку, для нових установок це дійсно змінює гру для користувачів Arch.
Дізнатися більше можна на GitHub-сторінці інструменту або в прикладах.




