apt-ostree/scripts/install-daemon.sh
robojerk 97a9c40d7e docs: Add comprehensive documentation and update planning
- Add docs/README.md with project overview and current status
- Add docs/architecture.md with detailed architecture documentation
- Add docs/development.md with development guide for contributors
- Update .notes/todo.md to reflect architecture fix completion
- Update .notes/plan.md with completed phases and next priorities

Architecture fixes (daemon and dbus), bubblewrap integration are now complete.
Ready for OCI integration phase.
2025-07-18 23:38:57 +00:00

135 lines
No EOL
4.2 KiB
Bash
Executable file

#!/bin/bash
# apt-ostree Daemon Installation Script
# This script installs all daemon components for apt-ostree
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Function to print colored output
print_status() {
echo -e "${GREEN}[INFO]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Check if running as root
if [[ $EUID -ne 0 ]]; then
print_error "This script must be run as root"
exit 1
fi
print_status "Installing apt-ostree daemon components..."
# Create necessary directories
print_status "Creating directories..."
mkdir -p /usr/libexec
mkdir -p /etc/apt-ostree
mkdir -p /var/lib/apt-ostree
mkdir -p /var/cache/apt-ostree
mkdir -p /var/log/apt-ostree
mkdir -p /etc/dbus-1/system.d
mkdir -p /usr/share/dbus-1/system-services
mkdir -p /usr/share/polkit-1/actions
# Copy daemon binary
print_status "Installing daemon binary..."
if [[ -f "target/release/apt-ostreed" ]]; then
cp target/release/apt-ostreed /usr/libexec/
chmod +x /usr/libexec/apt-ostreed
else
print_warning "Daemon binary not found, skipping..."
fi
# Copy configuration files
print_status "Installing configuration files..."
cp src/daemon/apt-ostreed.conf /etc/apt-ostree/
chmod 644 /etc/apt-ostree/apt-ostreed.conf
# Copy D-Bus configuration
print_status "Installing D-Bus configuration..."
cp src/daemon/org.aptostree.dev.conf /etc/dbus-1/system.d/
cp src/daemon/org.aptostree.dev.service /usr/share/dbus-1/system-services/
chmod 644 /etc/dbus-1/system.d/org.aptostree.dev.conf
chmod 644 /usr/share/dbus-1/system-services/org.aptostree.dev.service
# Copy Polkit policy
print_status "Installing Polkit policy..."
cp src/daemon/org.aptostree.dev.policy /usr/share/polkit-1/actions/
chmod 644 /usr/share/polkit-1/actions/org.aptostree.dev.policy
# Copy systemd services
print_status "Installing systemd services..."
cp src/daemon/apt-ostreed.service /etc/systemd/system/
cp src/daemon/apt-ostree-bootstatus.service /etc/systemd/system/
cp src/daemon/apt-ostree-countme.service /etc/systemd/system/
cp src/daemon/apt-ostree-countme.timer /etc/systemd/system/
cp src/daemon/apt-ostreed-automatic.service /etc/systemd/system/
cp src/daemon/apt-ostreed-automatic.timer /etc/systemd/system/
chmod 644 /etc/systemd/system/apt-ostreed.service
chmod 644 /etc/systemd/system/apt-ostree-bootstatus.service
chmod 644 /etc/systemd/system/apt-ostree-countme.service
chmod 644 /etc/systemd/system/apt-ostree-countme.timer
chmod 644 /etc/systemd/system/apt-ostreed-automatic.service
chmod 644 /etc/systemd/system/apt-ostreed-automatic.timer
# Set proper ownership
print_status "Setting ownership..."
chown -R root:root /var/lib/apt-ostree
chown -R root:root /var/cache/apt-ostree
chown -R root:root /var/log/apt-ostree
# Initialize OSTree repository if it doesn't exist
if [[ ! -d "/var/lib/apt-ostree/repo/objects" ]]; then
print_status "Initializing OSTree repository..."
/usr/bin/ostree init --repo=/var/lib/apt-ostree/repo
fi
# Reload systemd and D-Bus
print_status "Reloading systemd and D-Bus..."
systemctl daemon-reload
systemctl reload dbus
# Enable services
print_status "Enabling services..."
systemctl enable apt-ostreed.service
systemctl enable apt-ostree-bootstatus.service
systemctl enable apt-ostree-countme.timer
systemctl enable apt-ostreed-automatic.timer
# Start the daemon
print_status "Starting apt-ostreed daemon..."
systemctl start apt-ostreed.service
# Verify installation
print_status "Verifying installation..."
if systemctl is-active --quiet apt-ostreed.service; then
print_status "apt-ostreed daemon is running"
else
print_error "apt-ostreed daemon failed to start"
systemctl status apt-ostreed.service
exit 1
fi
# Test D-Bus connection
print_status "Testing D-Bus connection..."
if gdbus introspect --system --dest org.aptostree.dev --object-path /org/aptostree/dev > /dev/null 2>&1; then
print_status "D-Bus connection successful"
else
print_warning "D-Bus connection test failed"
fi
print_status "apt-ostree daemon installation completed successfully!"
print_status "You can now use 'apt-ostree' commands with daemon support"
print_status "Use 'systemctl status apt-ostreed.service' to check daemon status"