CondinAPT in MiniOS: Integrationsleitfaden
Dieses Dokument beschreibt die spezifischen Aspekte der Nutzung von CondinAPT im MiniOS-Build-System.
📚 Hauptdokumentation: Für grundlegende Funktionen von CondinAPT siehe das Hauptdokument
CondinAPT.md
Inhaltsverzeichnis
- Integration mit dem MiniOS-Build-System
- MiniOS-Konfiguration
- Verwendung in Modulen
- Beispiele für MiniOS
Integration mit dem MiniOS-Build-System
Verwendung in MiniOS-Modulen
CondinAPT ist ein Standardwerkzeug zur Paketinstallation in MiniOS-Modulen. Es integriert sich über das Standard-Modul-Interface in den Build-Prozess.
Im Modul-Installationsskript (install):
#!/bin/bash
set -e
# Load MiniOS library
. /minioslib || exit 1
# Install packages via CondinAPT
/linux-live/condinapt \
-l "$CWD/packages.list" \
-c /linux-live/build.conf \
-m /linux-live/condinapt.mapMiniOS Modulstruktur
Jedes Modul in /linux-live/scripts/ folgt einer standardisierten Struktur:
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 installationMiniOS-Konfiguration
Inhalt von condinapt.map in 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_LOCALESMiniOS-Konfigurationsvariablen
Hauptvariablen aus build.conf:
DISTRIBUTION– Ziel-Distribution (bookworm, trixie, jammy, noble)DISTRIBUTION_ARCH– Architektur (amd64, i386, i386-pae)DESKTOP_ENVIRONMENT– Desktop-Umgebung (core, flux, xfce, lxqt)PACKAGE_VARIANT– Paketvariante (minimum, standard, toolbox, ultra)INSTALL_KERNEL– Kernel-Paket installieren (true/false)KERNEL_FLAVOUR– Kernel-Variante (none, rt, cloud)KERNEL_AUFS– AUFS-Unterstützung (true/false)KERNEL_BUILD_DKMS– DKMS-Module bauen (true/false)INITRAMFS_BUILDER– Initramfs-Builder (livekit, dracut)LOCALE– System-Locale (C, en_US, ru_RU, es_ES, pt_BR)MULTILINGUAL– Mehrsprachigkeit (true/false)KEEP_LOCALES– Locales beibehalten (true/false)
Automatisch berechnete Variablen (aus minioslib):
DISTRIBUTION_TYPE– Distributions-Typ (debian, ubuntu) – wird automatisch anhand vonDISTRIBUTIONbestimmtlegacy: stretch, buster, orel, bioniccurrent: bullseye, bookworm, focal, jammy, noblefuture: trixie, kali-rolling, sid
Verwendung in Modulen
Beispiel für ein Multimedia-Modul
packages.list:
# Basic multimedia codecs - always
gstreamer1.0-plugins-base
gstreamer1.0-plugins-good
# Additional codecs - not for minimal variant
gstreamer1.0-plugins-bad -pv=minimum
gstreamer1.0-plugins-ugly -pv=minimum
gstreamer1.0-libav -pv=minimum
# Professional tools - only for toolbox and ultra
audacity +{pv=toolbox|pv=ultra}
kdenlive +{pv=toolbox|pv=ultra} +{de=xfce|de=lxqt}
---
# Distribution-specific packages from backports
ffmpeg @bookworm-backports +d=bookwormBeispiel für ein Treibermodul
packages.list:
# Basic drivers
mesa-utils
xserver-xorg-video-all
# NVIDIA drivers - only for non-free distributions
nvidia-driver +d=bookworm -{pv=minimum&de=core}
# AMD drivers - for modern distributions
firmware-amd-graphics +{d=trixie|d=noble}
mesa-vulkan-drivers +{d=trixie|d=noble}
# Old drivers - for old systems
xserver-xorg-video-radeon +d=bookwormBeispiel für ein Lokalisierungsmodul
packages.list:
# Basic locales - always
locales
# Russian localization
language-pack-ru +lo=ru_RU
fonts-liberation +lo=ru_RU
firefox-esr-l10n-ru +lo=ru_RU +{de=xfce|de=lxqt}
# Multilingual support
task-russian +ml=true +lo=ru_RU
hunspell-ru +ml=true +lo=ru_RU
# Keeping locales
vlc-l10n +kl=true +{pv=toolbox|pv=ultra}
# Regional settings for different locales
language-pack-pt +lo=pt_BR
language-pack-de +lo=de_DE
language-pack-fr +lo=fr_FRBeispiele für MiniOS
Erweiterte Filterverwendung in MiniOS
packages.list:
# 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
# Drivers for old systems
broadcom-sta-dkms -d=jammy -ka=true -da=i386
aufs-dkms +dt=debian +d=buster
# Exclusion for new distributions
realtek-rtl8821cu-dkms -d=trixie -d=sid
firmware-b43-installer -d=bionic
# Complex alternatives with filters
exfatprogs -pv=minimum || exfat-utils -pv=minimum && exfat-fuse -pv=minimum
# 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=ubuntuOptimierung für MiniOS
Gruppierung nach Funktionalität:
#=== 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=ultraIntegration mit dem MiniOS-Build-Prozess
Modul-Umgebungsvariablen
Im Kontext eines MiniOS-Moduls stehen folgende Variablen zur Verfügung:
$CWD– aktuelles Modulverzeichnis$LIVEKITNAME– Systemname (meistens "minios")$MODULE– aktueller Modulname
Verwendung von minioslib
#!/bin/bash
set -e
# Load MiniOS library
. /minioslib || exit 1
# Check module conditions
if [ "$PACKAGE_VARIANT" = "minimum" ] && [ "$DESKTOP_ENVIRONMENT" = "core" ]; then
echo "Skipping module for minimal core build"
exit 0
fi
# Install packages
/linux-live/condinapt \
-l "$CWD/packages.list" \
-c /linux-live/build.conf \
-m /linux-live/condinapt.mapFür vollständige Informationen zu den Funktionen von CondinAPT siehe das Hauptdokument CondinAPT.md