apt-bundle
A declarative package manager for apt, inspired by Homebrew’s brew bundle.
Overview
apt-bundle provides a simple, declarative, and shareable way to manage apt packages and repositories on Debian-based systems. Define your system dependencies in an Aptfile and install them with a single command.
Features
- Declarative Package Management: Define packages in a simple text file
- Idempotent Operations: Safe to run multiple times
- Repository & Key Management: Add PPAs, custom repositories, and GPG keys
- Version Pinning: Install specific package versions
- Simple CLI: Easy-to-use command-line interface
Quick Start
# Clone the repository
git clone https://github.com/apt-bundle/apt-bundle.git
cd apt-bundle
# Build and install
make build
sudo make install
# Create an Aptfile
cat > Aptfile <<EOF
apt vim
apt curl
apt git
EOF
# Install packages
sudo apt-bundle
Use Cases
Developer Onboarding
A new developer joins a project, clones the repo, and runs sudo apt-bundle to get all required system dependencies.
Dockerfile Build
Replace long, unmaintainable RUN apt-get install -y ... lines with a simple Aptfile and apt-bundle command.
System Sync
Use apt-bundle dump > Aptfile on your primary workstation and then sudo apt-bundle on a new laptop to sync your tools.
CI/CD
Use apt-bundle check to validate that the build environment has the necessary dependencies.
Documentation
- Installation - How to install apt-bundle
- Usage - Command reference and examples
- Aptfile Format - Complete syntax reference
- Developer Guide - Contributing and development setup
- API Reference - Go package documentation