CondinAPT en MiniOS: Guía de Integración
Este documento describe los aspectos específicos del uso de CondinAPT en el sistema de construcción de MiniOS.
📚 Documentación principal: Para las funciones básicas de CondinAPT, consulta el documento principal
CondinAPT.md
Tabla de Contenidos
- Integración con el sistema de construcción de MiniOS
- Configuración de MiniOS
- Uso en módulos
- Ejemplos para MiniOS
Integración con el sistema de construcción de MiniOS
Uso en módulos de MiniOS
CondinAPT es una herramienta estándar para la instalación de paquetes en los módulos de MiniOS. Se integra en el proceso de construcción a través de la interfaz estándar de módulos.
En el script de instalación del módulo (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.mapEstructura de los módulos de MiniOS
Cada módulo en /linux-live/scripts/ sigue una estructura estandarizada:
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 installationConfiguración de MiniOS
Contenido de condinapt.map en 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_LOCALESVariables de configuración de MiniOS
Variables principales de build.conf:
DISTRIBUTION- distribución objetivo (bookworm, trixie, jammy, noble)DISTRIBUTION_ARCH- arquitectura (amd64, i386, i386-pae)DESKTOP_ENVIRONMENT- entorno de escritorio (core, flux, xfce, lxqt)PACKAGE_VARIANT- variante de paquetes (minimum, standard, toolbox, ultra)INSTALL_KERNEL- instalar paquete de kernel (true/false)KERNEL_FLAVOUR- tipo de kernel (none, rt, cloud)KERNEL_AUFS- soporte AUFS (true/false)KERNEL_BUILD_DKMS- compilar módulos DKMS (true/false)INITRAMFS_BUILDER- generador de initramfs (livekit, dracut)LOCALE- configuración regional del sistema (C, en_US, ru_RU, es_ES, pt_BR)MULTILINGUAL- soporte multilingüe (true/false)KEEP_LOCALES- conservar locales (true/false)
Variables calculadas automáticamente (de minioslib):
DISTRIBUTION_TYPE- tipo de distribución (debian, ubuntu) - determinado automáticamente segúnDISTRIBUTIONlegacy: stretch, buster, orel, bioniccurrent: bullseye, bookworm, focal, jammy, noblefuture: trixie, kali-rolling, sid
Uso en módulos
Ejemplo de módulo multimedia
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=bookwormEjemplo de módulo de drivers
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=bookwormEjemplo de módulo de localización
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_FREjemplos para MiniOS
Uso avanzado de filtros en 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=ubuntuOptimización para MiniOS
Agrupación por funcionalidad:
#=== 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=ultraIntegración con el proceso de construcción de MiniOS
Variables de entorno del módulo
Dentro del contexto del módulo de MiniOS, están disponibles las siguientes variables:
$CWD- directorio actual del módulo$LIVEKITNAME- nombre del sistema (normalmente "minios")$MODULE- nombre del módulo actual
Uso de 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.mapPara información completa sobre las funciones de CondinAPT, consulta el documento principal CondinAPT.md