Refactor cleanup and installation steps in build script

This commit is contained in:
humocs-man
2026-04-18 09:49:43 +02:00
committed by GitHub
parent fe33d565d4
commit d0eee96d3b
+31 -65
View File
@@ -2,70 +2,46 @@
set -eoux pipefail set -eoux pipefail
############################################################################### ###############################################################################
# cleanup-function # cleanup-function (Unverändert, da sehr effektiv für Image-Größe)
############################################################################### ###############################################################################
cleanup() { cleanup() {
echo "Starting final cleanup..." echo "Starting final cleanup..."
# 1. Ungenutzte Pakete entfernen # 1. Ungenutzte Pakete entfernen
dnf5 autoremove -y || true dnf5 autoremove -y || true
# 2. Bereinigung Cache
#2 Bereinigung Cache
dnf5 clean all dnf5 clean all
# 3. Tiefenreinigung der Repository-Strukturen (Reduziert Layer-Größe)
# 3. Tiefenreinigung der Repository-Strukturen
# Wir löschen alles ab Ebene 2, um die schweren Repo-Ordner zu entfernen,
# aber lassen /var/lib/dnf und /var/lib/rpm selbst (Ebene 0 & 1) bestehen!
find /var/lib/dnf -mindepth 2 -delete || true find /var/lib/dnf -mindepth 2 -delete || true
find /var/lib/rpm -mindepth 2 -delete || true find /var/lib/rpm -mindepth 2 -delete || true
# 4. Reinigung der temporären Verzeichnisse
# 4. Reinigung der temporären Verzeichnisse (Löst die /run, /tmp, /var/tmp Warnungen)
# Wir löschen den Inhalt, aber nicht das Verzeichnis selbst.
rm -rf /run/* /tmp/* /var/tmp/* || true rm -rf /run/* /tmp/* /var/tmp/* || true
# 5. Entfernen von 'countme' Dateien
# 5. Entfernen von eventuellen 'countme' Dateien (Spezialfall für DNF5/RPM)
find /var/lib/dnf -name "countme" -delete || true find /var/lib/dnf -name "countme" -delete || true
find /var/lib/rpm -name "countme" -delete || true find /var/lib/rpm -name "countme" -delete || true
echo "Cleanup complete! Image is lean and clean." echo "Cleanup complete! Image is lean and clean."
} }
############################################################################### ###############################################################################
# Fedora version (used for RPM Fusion) # Fedora version (used for RPM Fusion)
############################################################################### ###############################################################################
FEDORA_VERSION="$(rpm -E %fedora)" FEDORA_VERSION="$(rpm -E %fedora)"
############################################################################### ###############################################################################
# Enable RPM Fusion (free + nonfree) # Enable RPM Fusion (free + nonfree)
############################################################################### ###############################################################################
dnf5 install -y \ dnf5 install -y \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \ https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-${FEDORA_VERSION}.noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-${FEDORA_VERSION}.noarch.rpm
############################################################################### ###############################################################################
# Multimedia stack (Mesa freeworld + codecs) # Transaction 1: Multimedia Stack (Mesa + Codecs + Group)
# Zusammengefasst, um Abhängigkeiten in einem Schritt zu lösen.
############################################################################### ###############################################################################
echo "Installing Multimedia stack (Mesa Freeworld, Codecs & Groups)..."
# Replace Fedora Mesa with freeworld variants
dnf5 install -y \ dnf5 install -y \
mesa-va-drivers-freeworld \ mesa-va-drivers-freeworld \
mesa-vdpau-drivers-freeworld \ mesa-vdpau-drivers-freeworld \
mesa-vulkan-drivers-freeworld \ mesa-vulkan-drivers-freeworld \
--skip-unavailable \
--allowerasing
# Install full multimedia group (RPM Fusion maintained)
dnf5 group install -y multimedia \
--with-optional \
--allowerasing
# Explicit codec safety net
dnf5 install -y \
ffmpeg \ ffmpeg \
ffmpeg-libs \ ffmpeg-libs \
libavcodec-freeworld \ libavcodec-freeworld \
@@ -74,10 +50,14 @@ dnf5 install -y \
gstreamer1-plugins-ugly \ gstreamer1-plugins-ugly \
--allowerasing --allowerasing
############################################################################### # Die Gruppeninstallation bleibt separat, da sie eine eigene logische Einheit ist
# Virtualization stack (desktop-focused, minimal) dnf5 group install -y multimedia --with-optional --allowerasing
###############################################################################
###############################################################################
# Transaction 2: Virtualization, Tools & Hardware Helpers
# Zusammengefasst für effizientere Paketauflösung.
###############################################################################
echo "Installing Virtualization, Plasma Setup and Hardware Helpers..."
dnf5 install -y \ dnf5 install -y \
libvirt-daemon \ libvirt-daemon \
libvirt-daemon-driver-qemu \ libvirt-daemon-driver-qemu \
@@ -87,45 +67,34 @@ dnf5 install -y \
qemu-img \ qemu-img \
virt-manager \ virt-manager \
virt-viewer \ virt-viewer \
distrobox distrobox \
plasma-setup \
libva-utils \
intel-media-driver \
--allowerasing || true
############################################################################### ###############################################################################
# Steam (RPM Fusion nonfree) # Transaction 3: Steam (i686 dependencies)
# Getrennt, da Architektur-Wechsel (i686) oft eigene Transaktionen erfordern.
############################################################################### ###############################################################################
echo "Installing Steam and i686 libraries..."
dnf5 install -y \ dnf5 install -y \
steam \ steam \
mesa-dri-drivers.i686 \ mesa-dri-drivers.i686 \
mesa-libGL.i686 \ mesa-libGL.i686 \
mesa-libEGL.i686 mesa-libEGL.i686 \
--allowerasing
############################################################################### ###############################################################################
# Optional: hardware video acceleration helpers # Cleanup of Unwanted Packages
############################################################################### ###############################################################################
echo "Removing Firefox and langpacks..."
dnf5 install -y \ dnf5 remove -y firefox firefox-langpacks* || true
libva-utils \
intel-media-driver || true
############################################################################### ###############################################################################
# Install Plasma Setup # Services Configuration
############################################################################### ###############################################################################
echo "Enabling services..."
dnf5 install -y \
plasma-setup
###############################################################################
# Remove Firefox and langpacks
###############################################################################
dnf5 remove -y \
firefox \
firefox-langpacks*
###############################################################################
# Services
###############################################################################
systemctl enable libvirtd.service systemctl enable libvirtd.service
systemctl enable virtlogd.service systemctl enable virtlogd.service
systemctl enable podman.socket systemctl enable podman.socket
@@ -133,11 +102,8 @@ systemctl enable bluetooth.service
systemctl enable plasma-setup.service systemctl enable plasma-setup.service
systemctl enable bootc-fetch-apply-updates.timer systemctl enable bootc-fetch-apply-updates.timer
############################################################################### ###############################################################################
# Cleanup # Final Cleanup
############################################################################### ###############################################################################
cleanup cleanup
echo "Custom build complete!" echo "Custom build complete!"