Installation Guide#
This guide covers all the ways to install OS Image Composer and its prerequisites.
Table of Contents#
Prerequisites#
OS: Ubuntu 24.04 (recommended; other standard Linux distributions may work but are not validated)
Go: Version 1.24.0 or later — see Go installation instructions
Development Build (Go)#
For development and testing purposes, build directly with Go.
The binary is placed in the repo root as ./os-image-composer.
# Build the tool (output: ./os-image-composer)
go build -buildmode=pie -ldflags "-s -w" ./cmd/os-image-composer
# Build the live-installer (required for ISO images)
go build -buildmode=pie -o ./build/live-installer -ldflags "-s -w" ./cmd/live-installer
# Or run without building
go run ./cmd/os-image-composer --help
Note: Development builds show default version information (e.g.,
Version: 0.1.0,Build Date: unknown). This is expected.
Including Version Information in Dev Builds#
To embed version metadata via ldflags:
VERSION=$(git describe --tags --always --dirty 2>/dev/null || echo "dev")
COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
BUILD_DATE=$(date -u '+%Y-%m-%d')
go build -buildmode=pie \
-ldflags "-s -w \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Version=$VERSION' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Toolname=Image-Composer' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Organization=Open Edge Platform' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.BuildDate=$BUILD_DATE' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.CommitSHA=$COMMIT'" \
./cmd/os-image-composer
# Required for ISO images
go build -buildmode=pie \
-o ./build/live-installer \
-ldflags "-s -w \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Version=$VERSION' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Toolname=Image-Composer' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.Organization=Open Edge Platform' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.BuildDate=$BUILD_DATE' \
-X 'github.com/open-edge-platform/os-image-composer/internal/config/version.CommitSHA=$COMMIT'" \
./cmd/live-installer
Production Build (Earthly)#
For reproducible production builds with automatic version injection.
The binary is placed in ./build/os-image-composer.
# Default build (output: ./build/os-image-composer)
earthly +build
# Build with custom version metadata
earthly +build --VERSION=1.2.0
Install via Debian Package#
For Ubuntu and Debian systems, OS Image Composer can be installed as a .deb
package with proper package management.
Build the Debian Package#
# Build with default parameters (latest git tag, amd64)
earthly +deb
# Build with custom version
earthly +deb --VERSION=1.2.0
The package is created in the dist/ directory as
os-image-composer_<VERSION>_<ARCH>.deb.
Install the Package#
# Recommended — automatically resolves dependencies
sudo apt install <PATH>/os-image-composer_1.0.0_amd64.deb
Alternatively, using dpkg:
sudo apt-get update
sudo apt-get install -y bash coreutils unzip dosfstools xorriso grub-common
sudo dpkg -i dist/os-image-composer_1.0.0_amd64.deb
# Optional bootstrap tools:
sudo apt-get install -y mmdebstrap || sudo apt-get install -y debootstrap
Tip: If
dpkg -ireports dependency errors, runsudo apt-get install -fto resolve them.
Verify Installation#
dpkg -l | grep os-image-composer
os-image-composer version
Package Contents#
Path |
Description |
|---|---|
|
Main executable |
|
Global configuration |
|
OS variant configuration files |
|
Sample image templates |
|
README, LICENSE, CLI specification |
|
Package cache storage |
Package Dependencies#
Required:
bash,coreutils,unzip,dosfstools,xorriso,grub-common
Recommended (installed if available):
mmdebstrap(preferred, version 1.4.3+ required)debootstrap(alternative)
Important:
mmdebstrapversion 0.8.x (included in Ubuntu 22.04) has known issues. For Ubuntu 22.04, install version 1.4.3+ manually — see mmdebstrap instructions.
Uninstall#
# Remove package (keeps config files)
sudo dpkg -r os-image-composer
# Remove package and config files
sudo dpkg --purge os-image-composer
Image Composition Prerequisites#
Before composing images, install these additional tools:
ukify#
Combines kernel, initrd, and UEFI boot stub to create signed Unified Kernel Images (UKI).
Ubuntu 23.04+:
sudo apt install systemd-ukifyUbuntu 22.04 and earlier: Install manually from systemd source — see ukify installation instructions
mmdebstrap#
Downloads and installs Debian packages to initialize a chroot.
Ubuntu 23.04+: Available in system repositories (version 1.4.3+)
Ubuntu 22.04: The repository version (0.8.x) will not work — install 1.4.3+ manually per the mmdebstrap instructions
Alternative:
debootstrapcan be used for Debian-based images
Next Steps#
Quick Start — build your first image
Usage Guide — CLI commands, configuration, and shell completion
Image Templates — creating and reusing templates