FreeDOS Package Management: FDIMPLES and the FreeDOS Package Repository
How FreeDOS distributes and installs software as discrete packages, and the tools used to manage them, decades before Linux package managers existed.
It’s easy to assume a minimal, decades-old OS like FreeDOS just ships as one big fixed image, but the modern FreeDOS distribution is genuinely package-based — organized into discrete, independently-installable packages with a real package manager, FDIMPLES, and a curated online repository, considerably more structured than the informal “copy some files” approach classic MS-DOS software distribution relied on.
The package format: FDNPKG and .zip-based packages
A FreeDOS package is a .zip archive following a defined layout, paired with a small text control file describing the package’s name, version, dependencies, and installed file list — conceptually similar in spirit to a .deb or .rpm’s control metadata, just far simpler in structure, appropriate for an OS with no dynamic linker or complex dependency resolution to worry about.
C:\>fdimples
FDIMPLES (FreeDOS Installation Manager for PackagES) presents a menu-driven interface for browsing available packages, viewing descriptions, and selecting installs/removals — the closest FreeDOS equivalent to a TUI-based package manager front-end.
FDNPKG: the command-line package tool
Underneath FDIMPLES, FDNPKG.EXE is the actual package management engine, usable directly for scripted or non-interactive package installation:
C:\>fdnpkg install nasm
C:\>fdnpkg list
C:\>fdnpkg remove nasm
C:\>fdnpkg update
update refreshes the local package index against the configured repository source — the same “refresh the catalog before installing” step familiar from apt update or pkg update on other systems, just against a far smaller, curated package set.
Where packages actually come from
The official FreeDOS package repository is a structured, categorized collection (base, devel, edit, games, net, util, and more) hosted for download, mirrored across several sites — and because FreeDOS packages are generally small (measured in kilobytes to a few megabytes, not gigabytes), the entire curated repository is modest enough to fit on a single CD image, which is in fact how FreeDOS has traditionally been distributed.
[base]
description=Core utilities
[devel]
description=Compilers, assemblers, and development tools
[games]
description=Games
Dependencies: simpler, because the environment is simpler
Package dependencies exist in FreeDOS’s format, but the dependency graphs involved are shallow compared to a modern Linux distribution — there’s no shared dynamic library ecosystem generating deep transitive dependency chains, since most DOS-era software links statically or depends on nothing beyond the DOS kernel API itself. A package’s control file lists what it needs, and FDNPKG resolves accordingly, just against a much flatter dependency landscape.
[nasm]
version=2.16.01
depends=
Installing from local media vs. network sources
Because FreeDOS is frequently installed on hardware or virtual machines with no network access at all (firmware-flashing scenarios, in particular), package management supports installing directly from a local directory or mounted CD image, not just a network repository — a deliberate design accommodation for FreeDOS’s most common real-world deployment context:
C:\>fdnpkg install --source=D:\packages nasm
Comparing this to modern package managers
FreeDOS’s package system covers the same conceptual ground as pkg on FreeBSD or apt/dnf on Linux — a manifest format, a repository, dependency tracking, install/remove/update verbs — scaled down appropriately for an environment with no dynamic linking, no user permission model to navigate, and a package ecosystem numbering in the hundreds rather than tens of thousands. It’s a useful reminder that “package management” as a concept doesn’t require a sophisticated dependency-solver or a signed binary repository infrastructure to be genuinely useful — just a consistent manifest format and a tool that reads it, which is precisely what FDIMPLES and FDNPKG provide.