#!/bin/bash # Debian Atomic Infrastructure Installation Script # This script installs the missing OSTree infrastructure files to a Debian system set -e echo "🚀 Installing Debian Atomic Infrastructure Files" echo "================================================" # Check if running as root if [ "$EUID" -ne 0 ]; then echo "❌ Please run as root (use sudo)" exit 1 fi # Create directories echo "📁 Creating directories..." mkdir -p /usr/lib/systemd/system mkdir -p /usr/lib/ostree mkdir -p /usr/lib/tmpfiles.d mkdir -p /usr/lib/kernel/install.d mkdir -p /usr/lib/dracut/modules.d/98ostree mkdir -p /usr/lib/dracut.conf.d mkdir -p /usr/share/dbus-1/system.d # Install OSTree systemd services echo "🔧 Installing OSTree systemd services..." cp ostree-systemd/systemd/system/*.service /usr/lib/systemd/system/ cp ostree-systemd/ostree/prepare-root.conf /usr/lib/ostree/ cp ostree-systemd/tmpfiles.d/ostree-tmpfiles.conf /usr/lib/tmpfiles.d/ # Install bootc services echo "🔧 Installing bootc services..." cp bootc/systemd/system/*.service /usr/lib/systemd/system/ cp bootc-systemd/systemd/system/*.service /usr/lib/systemd/system/ cp bootc/systemd/system/*.timer /usr/lib/systemd/system/ cp bootc/systemd/system/*.target /usr/lib/systemd/system/ # Install bootc dracut configuration echo "🔧 Installing bootc dracut configuration..." cp bootc-dracut/usr/lib/dracut.conf.d/*.conf /usr/lib/dracut.conf.d/ # Install APT-OSTree services echo "🔧 Installing APT-OSTree services..." cp apt-ostree-systemd/systemd/system/*.service /usr/lib/systemd/system/ cp apt-ostree-systemd/systemd/system/*.timer /usr/lib/systemd/system/ cp apt-ostree-systemd/kernel/install.d/*.install /usr/lib/kernel/install.d/ cp apt-ostree-systemd/kernel/install.conf /usr/lib/kernel/ cp apt-ostree-systemd/tmpfiles.d/*.conf /usr/lib/tmpfiles.d/ cp apt-ostree-systemd/apt-ostreed.conf /etc/ cp apt-ostree-systemd/org.debian.aptostree1.conf /usr/share/dbus-1/system.d/ # Make kernel install hook executable chmod +x /usr/lib/kernel/install.d/05-aptostree.install # Install OSTree dracut module echo "🔧 Installing OSTree dracut module..." cp ostree-dracut/modules.d/98ostree/module-setup.sh /usr/lib/dracut/modules.d/98ostree/ chmod +x /usr/lib/dracut/modules.d/98ostree/module-setup.sh # Reload systemd echo "🔄 Reloading systemd..." systemctl daemon-reload echo "✅ Installation complete!" echo "" echo "📋 Installed components:" echo " - OSTree systemd services (6 services)" echo " - Bootc systemd services (8 services + timers + targets)" echo " - APT-OSTree systemd services (4 services + timer)" echo " - Kernel installation hooks (1 hook + config)" echo " - OSTree dracut module (1 module)" echo "" echo "🎯 Next steps:" echo " 1. Test with apt-ostree compose tree" echo " 2. Test with apt-ostree compose container-encapsulate" echo " 3. Test with bootc-image-builder" echo " 4. Boot test the resulting image" echo "" echo "🔍 To verify installation:" echo " systemctl list-units --type=service | grep -E '(ostree|bootc|apt-ostree)'" echo " ls -la /usr/lib/kernel/install.d/05-aptostree.install" echo " ls -la /usr/lib/dracut/modules.d/98ostree/module-setup.sh"