Decman 1.0 – deklaratív csomag- és konfigurációkezelés Arch Linuxhoz, NixOS-szerű szemlélettel

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Megjelent a Decman 1.0, egy új, ígéretes eszköz az Arch Linux felhasználók számára, amely különösen azoknak lehet vonzó, akik hiányolják a NixOS-szerű, deklaratív rendszerkezelést, vagy DevOps-orientált gondolkodásmóddal szeretnék kézben tartani a rendszerük állapotát.

Mi a Decman lényege?

A Decman nem parancsok sorozatával („imperatív módon”) módosítja a rendszert, hanem egy deklarált kívánt állapotot kényszerít ki. Ez az állapot Pythonban megírt konfigurációként szolgál, és ez lesz az egyetlen „igazságforrás”.

A konfigurációban többek között megadható:

  • mely pacman csomagok legyenek telepítve,
  • mely AUR csomagok szükségesek,
  • milyen konfigurációs fájloknak kell létezniük, és pontosan milyen tartalommal,
  • mely systemd szolgáltatások legyenek engedélyezve,
  • valamint milyen további technológiák (például Flatpak) legyenek használatban.

A Decman futtatásakor összehasonlítja a jelenlegi rendszerállapotot a deklarált konfigurációval, és csak azokat a változtatásokat hajtja végre, amelyek feltétlenül szükségesek az egyezéshez.

Egyszerű példa deklaratív konfigurációra

Egy minimális Decman-konfiguráció így nézhet ki:

import decman
from decman import File, Directory

# Telepítendő pacman csomagok
decman.pacman.packages |= {
    "base", "linux", "linux-firmware",
    "networkmanager", "ufw", "neovim"
}

# AUR csomagok
decman.aur.packages |= {"decman"}

# Konfigurációs fájl – inline tartalommal
decman.files["/etc/vconsole.conf"] = File(content="KEYMAP=us")

# Konfigurációs fájl forrásból
decman.files["/etc/pacman.conf"] = File(
    source_file="./dotfiles/pacman.conf"
)

# Teljes könyvtár szinkronizálása
decman.directories["/home/user/.config/nvim"] = Directory(
    source_directory="./dotfiles/nvim",
    owner="user"
)

# Systemd szolgáltatás engedélyezése
decman.systemd.enabled_units |= {"NetworkManager.service"}

Funkciók röviden

  • Pacman és AUR támogatás külön plugineken keresztül
  • Konfigurációs fájlok és könyvtárak szinkronizálása jogosultságokkal, tulajdonossal
  • Systemd integráció, szolgáltatások deklaratív engedélyezésével
  • Flatpak plugin, így a Flatpak alkalmazások is ugyanabban a modellben kezelhetők
  • Hookok: parancsok futtatása fájlváltozáskor vagy frissítés után (pl. initramfs újragenerálása)

Miért lehet ez nagy dobás Arch alatt?

A Decman használatával:

  • a rendszer reprodukálhatóvá válik,
  • egy új telepítés percek alatt azonos állapotba hozható,
  • a napi karbantartás leegyszerűsödik:
  • nem külön frissít, nem külön szerkeszt – csak újra alkalmazza a deklarációt.

Ez különösen értékes lehet:

  • több Arch rendszer párhuzamos kezelésénél,
  • munkaállomások egységesítésénél,
  • vagy azoknak, akik szeretik a „konfiguráció mint kód” megközelítést.

A Decman 1.0 egyértelműen nem kezdőknek szól, viszont haladó Arch Linux felhasználóknak valódi paradigmaváltást hozhat. Ha beválik a gyakorlatban, akár teljesen kiválthatja a hagyományos kézi csomag- és konfigurációkezelést – és ezzel egy új, deklaratív irányt nyithat az Arch ökoszisztémában.

További információk és példák a projekt GitHub-oldalán érhetők el.