Логотип

Decman — декларативный менеджер пакетов и конфигураций для Arch Linux

Decman — декларативный менеджер пакетов и конфигураций для Arch Linux

Вот новый инструмент с большим потенциалом, который понравится продвинутым пользователям Arch, особенно тем, кому не хватает подхода к управлению системой в стиле NixOS (или тем, кто ориентирован на DevOps). Мы говорим о Decman, который вышел в своей первой стабильной версии 1.0.

Вот что с его помощью можно сделать. Decman управляет установкой Arch Linux, поддерживая заявленное состояние системы (записанное непосредственно на Python) вместо того, чтобы принудительно вносить изменения.

В простой конфигурации вы указываете, какие пакеты должны быть установлены, какие файлы конфигурации должны существовать и каково их содержимое, какие службы systemd должны быть включены и какие инструменты, например Flatpak или помощники AUR, используются. Это определение является исходным пунктом.

Затем, после выполнения, Decman сравнивает заявленную конфигурацию с текущей системой и применяет только те изменения, которые необходимы для приведения системы в заданное состояние. Вот как выглядит очень простой пример:

import decman

from decman import File, Directory

# Declare installed pacman packages
decman.pacman.packages |= {"base", "linux", "linux-firmware", "networkmanager", "ufw", "neovim"}

# Declare installed aur packages
decman.aur.packages |= {"decman"}

# Declare configuration files
# Inline
decman.files["/etc/vconsole.conf"] = File(content="KEYMAP=us")

# From files within your source repository
# (full path here would be /home/user/config/dotfiles/pacman.conf)
decman.files["/etc/pacman.conf"] = File(source_file="./dotfiles/pacman.conf")

# Declare a whole directory
decman.directories["/home/user/.config/nvim"] = Directory(source_directory="./dotfiles/nvim", owner="user")

# Ensure that a systemd unit is enabled.
decman.systemd.enabled_units |= {"NetworkManager.service"}

 

Инструмент поддерживает собственные пакеты Pacman и пакеты AUR с помощью отдельных плагинов, что позволяет декларативно управлять обоими типами пакетов. Файлы конфигурации можно отслеживать в исходном каталоге и синхронизировать с целевыми каталогами, задав права доступа и владельца.

Читать  ytDownloader — простой графический интерфейс для загрузки видео с YouTube в Linux

Кроме того, Decman поддерживает хуки, которые запускают команды при изменении отслеживаемых файлов или после обновления системы, что позволяет выполнять такие рабочие процессы, как регенерация образов initramfs или последовательное выполнение дополнительных этапов обновления.

Управление сервисами Systemd осуществляется с помощью плагина systemd, который позволяет включать модули в рамках объявленной конфигурации. Поддержка Flatpak также доступна через специальный плагин, который позволяет управлять приложениями Flatpak наряду с системными пакетами в рамках одной декларативной настройки.

Как я уже говорил в начале, у Deckman большой потенциал, и он может заменить традиционные команды обновления системы, которые используются ежедневно. Вместо того чтобы вручную запускать менеджеры пакетов или вспомогательные инструменты, вы просто повторно применяете декларативную конфигурацию, запустив Deckman.

Это гарантирует, что установленное программное обеспечение, файлы конфигурации и службы будут работать стабильно и предсказуемо. На мой взгляд, для новых установок это действительно прорыв для пользователей Arch.

Дополнительную информацию можно найти на странице инструмента на GitHub или в примерах.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала