Refactor cleanup and installation steps in build script
This commit is contained in:
+31
-65
@@ -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!"
|
||||||
|
|||||||
Reference in New Issue
Block a user