Skip to content

CondinAPT MiniOS ru

crim50n edited this page Jul 7, 2026 · 1 revision

CondinAPT в MiniOS: Руководство по интеграции

В этом документе описаны особенности использования CondinAPT в системе сборки MiniOS.

📚 Основная документация: Для базовых возможностей CondinAPT смотрите основной документ CondinAPT.md

Оглавление

Интеграция с системой сборки MiniOS

Использование в модулях MiniOS

CondinAPT — стандартный инструмент для установки пакетов в модулях MiniOS. Он интегрируется в процесс сборки через стандартный интерфейс модуля.

В скрипте установки модуля (install):

#!/bin/bash
set -e

<a id="load-minios-library"></a>
# Load MiniOS library
. /minioslib || exit 1

<a id="install-packages-via-condinapt"></a>
# Install packages via CondinAPT
/linux-live/condinapt \
    -l "$CWD/packages.list" \
    -c /linux-live/build.conf \
    -m /linux-live/condinapt.map

Структура модуля MiniOS

Каждый модуль в /linux-live/scripts/ имеет стандартизированную структуру:

XX-module-name/
├── packages.list                     # Package list with conditions
├── install                           # Installation script (uses CondinAPT)
├── rootcopy-install/                 # (optional) Files to copy
└── rootcopy-postinstall/             # (optional) Files after installation

Конфигурация MiniOS

Содержимое condinapt.map в MiniOS

d=DISTRIBUTION
da=DISTRIBUTION_ARCH
dt=DISTRIBUTION_TYPE
de=DESKTOP_ENVIRONMENT
pv=PACKAGE_VARIANT
ik=INSTALL_KERNEL
kf=KERNEL_FLAVOUR
ka=KERNEL_AUFS
kbd=KERNEL_BUILD_DKMS
ib=INITRAMFS_BUILDER
lo=LOCALE
ml=MULTILINGUAL
kl=KEEP_LOCALES

Переменные конфигурации MiniOS

Основные переменные из build.conf:

  • DISTRIBUTION — целевая дистрибуция (bookworm, trixie, jammy, noble)
  • DISTRIBUTION_ARCH — архитектура (amd64, i386, i386-pae)
  • DESKTOP_ENVIRONMENT — рабочее окружение (core, flux, xfce, lxqt)
  • PACKAGE_VARIANT — вариант набора пакетов (minimum, standard, toolbox, ultra)
  • INSTALL_KERNEL — устанавливать пакет ядра (true/false)
  • KERNEL_FLAVOUR — вариант ядра (none, rt, cloud)
  • KERNEL_AUFS — поддержка AUFS (true/false)
  • KERNEL_BUILD_DKMS — собирать модули DKMS (true/false)
  • INITRAMFS_BUILDER — сборщик initramfs (livekit, dracut)
  • LOCALE — системная локаль (C, en_US, ru_RU, es_ES, pt_BR)
  • MULTILINGUAL — поддержка мультиязычности (true/false)
  • KEEP_LOCALES — сохранять локали (true/false)

Автоматически вычисляемые переменные (из minioslib):

  • DISTRIBUTION_TYPE — тип дистрибуции (debian, ubuntu) — определяется автоматически на основе DISTRIBUTION
    • legacy: stretch, buster, orel, bionic
    • current: bullseye, bookworm, focal, jammy, noble
    • future: trixie, kali-rolling, sid

Использование в модулях

Пример мультимедийного модуля

packages.list:

<a id="basic-multimedia-codecs---always"></a>
# Basic multimedia codecs - always
gstreamer1.0-plugins-base
gstreamer1.0-plugins-good

<a id="additional-codecs---not-for-minimal-variant"></a>
# Additional codecs - not for minimal variant
gstreamer1.0-plugins-bad -pv=minimum
gstreamer1.0-plugins-ugly -pv=minimum
gstreamer1.0-libav -pv=minimum

<a id="professional-tools---only-for-toolbox-and-ultra"></a>
# Professional tools - only for toolbox and ultra
audacity +{pv=toolbox|pv=ultra}
kdenlive +{pv=toolbox|pv=ultra} +{de=xfce|de=lxqt}

---

<a id="distribution-specific-packages-from-backports"></a>
# Distribution-specific packages from backports
ffmpeg @bookworm-backports +d=bookworm

Пример модуля драйверов

packages.list:

<a id="basic-drivers"></a>
# Basic drivers
mesa-utils
xserver-xorg-video-all

<a id="nvidia-drivers---only-for-non-free-distributions"></a>
# NVIDIA drivers - only for non-free distributions
nvidia-driver +d=bookworm -{pv=minimum&de=core}

<a id="amd-drivers---for-modern-distributions"></a>
# AMD drivers - for modern distributions
firmware-amd-graphics +{d=trixie|d=noble}
mesa-vulkan-drivers +{d=trixie|d=noble}

<a id="old-drivers---for-old-systems"></a>
# Old drivers - for old systems
xserver-xorg-video-radeon +d=bookworm

Пример модуля локализации

packages.list:

<a id="basic-locales---always"></a>
# Basic locales - always
locales

<a id="russian-localization"></a>
# Russian localization
language-pack-ru +lo=ru_RU
fonts-liberation +lo=ru_RU
firefox-esr-l10n-ru +lo=ru_RU +{de=xfce|de=lxqt}

<a id="multilingual-support"></a>
# Multilingual support
task-russian +ml=true +lo=ru_RU
hunspell-ru +ml=true +lo=ru_RU

<a id="keeping-locales"></a>
# Keeping locales
vlc-l10n +kl=true +{pv=toolbox|pv=ultra}

<a id="regional-settings-for-different-locales"></a>
# Regional settings for different locales
language-pack-pt +lo=pt_BR
language-pack-de +lo=de_DE
language-pack-fr +lo=fr_FR

Примеры для MiniOS

Продвинутое использование фильтра в MiniOS

packages.list:

<a id="dkms-modules-with-kernel-and-distribution-conditions"></a>
# DKMS modules with kernel and distribution conditions
ntfs3-dkms -ka=true -d=buster -d=trixie -d=sid
zfs-dkms +{pv=toolbox|pv=ultra} +da=amd64 +kbd=true -kf=none

<a id="drivers-for-old-systems"></a>
# Drivers for old systems
broadcom-sta-dkms -d=jammy -ka=true -da=i386
aufs-dkms +dt=debian +d=buster

<a id="exclusion-for-new-distributions"></a>
# Exclusion for new distributions
realtek-rtl8821cu-dkms -d=trixie -d=sid
firmware-b43-installer -d=bionic

<a id="complex-alternatives-with-filters"></a>
# Complex alternatives with filters
exfatprogs -pv=minimum || exfat-utils -pv=minimum && exfat-fuse -pv=minimum

<a id="localization-with-exclusions-and-conditions"></a>
# Localization with exclusions and conditions
vlc-l10n -lo=en_US +{pv=toolbox|pv=ultra}
language-pack-gnome-ru-base +lo=ru_RU +dt=ubuntu
language-pack-gnome-ru-base +ml=true +dt=ubuntu
language-pack-gnome-ru-base +kl=true +dt=ubuntu

Оптимизация для MiniOS

Группировка по функционалу:

#=== Core System ===
systemd +pv=standard +pv=toolbox +pv=ultra
dbus

#=== Desktop Environment ===
xfce4-panel +de=xfce
lxqt-panel +de=lxqt
fluxbox +de=flux

#=== Applications by Variant ===
firefox-esr +{pv=standard|pv=toolbox|pv=ultra}
thunderbird +{pv=toolbox|pv=ultra}
libreoffice +pv=ultra

Интеграция с процессом сборки MiniOS

Переменные окружения модуля

В контексте модуля MiniOS доступны следующие переменные:

  • $CWD — текущий каталог модуля
  • $LIVEKITNAME — имя системы (обычно "minios")
  • $MODULE — имя текущего модуля

Использование minioslib

#!/bin/bash
set -e

<a id="load-minios-library-1"></a>
# Load MiniOS library
. /minioslib || exit 1

<a id="check-module-conditions"></a>
# Check module conditions
if [ "$PACKAGE_VARIANT" = "minimum" ] && [ "$DESKTOP_ENVIRONMENT" = "core" ]; then
    echo "Skipping module for minimal core build"
    exit 0
fi

<a id="install-packages"></a>
# Install packages
/linux-live/condinapt \
    -l "$CWD/packages.list" \
    -c /linux-live/build.conf \
    -m /linux-live/condinapt.map

Для получения полной информации о возможностях CondinAPT смотрите основной документ CondinAPT.md

🏠 Home

🌐 Languages

English

📋 About MiniOS

🚀 Installation

⚙️ Configuration

🛡️ Administration

🛠️ Development

de

📋 Über MiniOS

🚀 Installation

⚙️ Konfiguration

🛡️ Administration

🛠️ Entwicklung

es

📋 Acerca de MiniOS

🚀 Instalación

⚙️ Configuración

🛡️ Administración

🛠️ Desarrollo

fr

📋 À propos de MiniOS

🚀 Installation

⚙️ Configuration

🛡️ Administration

🛠️ Développement

id

📋 Tentang MiniOS

🚀 Instalasi

⚙️ Konfigurasi

🛡️ Administrasi

🛠️ Pengembangan

it

📋 Informazioni su MiniOS

🚀 Installazione

⚙️ Configurazione

🛡️ Amministrazione

🛠️ Sviluppo

pt-BR

📋 Sobre o MiniOS

🚀 Instalação

⚙️ Configuração

🛡️ Administração

🛠️ Desenvolvimento

ru

📋 О MiniOS

🚀 Установка

⚙️ Конфигурация

🛡️ Администрирование

🛠️ Разработка

Clone this wiki locally