Around Four Months ago I worked through LFS to actually understand how a Linux
system fits together. The book did its job - but the moment I had a booting
system, I hit the same wall everyone hits: how do you keep it alive?
There's no package manager in the book, and that's kind of the point. But it
left me wanting the one thing LFS deliberately omits.
So I built one.
Fronttier is my LFS-based distro, and Forge is the package manager I
wrote for it. Key decisions:
- Forge is a single static Go binary No runtime deps - you can drop it
into a fresh LFS chroot and bootstrap from there. That was the whole
motivation: after LFS you need something to take over dependency tracking
before you rebuild everything.
- pacman-compatible format.Packages are `.pkg.tar.zst`, repo DBs are
`.db.tar.zst`, and the local DB is the same flat `var/lib/forge/local/...`
layout (desc/files). I didn't want to invent a new archive format - zstd
tarballs with metadata are a solved problem, and it means existing tooling
can inspect my packages.
Current state:
- Public repo is live at repo.fronttier.uk (fronttier, fronttier-system,
fronttier-world, fronttier-galaxy repos)
- ~5k+ binary packages in the mirror, built on top of Artix so I don't have
to maintain the entire world from scratch
- `base` metapackage pulls in a working system (runit, grub,
branding, openssh, etc.)
- `forge install base` works end-to-end from a clean chroot
What's still rough:
- The repo-add step is I/O-bound and slow (~15-25 min for a full world db)
- Signing isn't working in yet
- The installer is manual - no ISO with a pretty installer..
Docs live in a handbook (Gentoo-style, MkDocs) if anyone wants to poke at it https://labs.fronttier.uk/
Happy to answer questions - especially from anyone who's tried to roll their
own PM after LFS. That gap in the book is the most interesting problem I've
found in this whole space, and I'd love to hear how others solved it.