debian-atomic-system-files/install.sh
2025-09-01 14:05:34 -07:00

83 lines
3.1 KiB
Bash
Executable file

#!/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"