apt / dpkg
APT resolves and downloads, then dpkg mutates installed paths. Current APT adds history reversal, but interrupted work can still require repair or completion.
Trade-off matrix
Conary is not the mature choice today. Its near-term bet is that RPM, DEB, and Arch packages can retain their source semantics while one engine owns the transaction on any supported Linux target.
Capability matrix
Conary labels describe current maturity. Competitor labels distinguish defaults, version-gated features, adjacent first-party stacks, and different package models. This is not a performance benchmark or an ecosystem-size ranking.
| Defined behavior | Conary | apt | dnf | pacman | Nix / NixOS |
|---|---|---|---|---|---|
| Dependency selection model | SAT · built-in | APT 3 SAT fallback | SAT · default | non-SAT | evaluated graph |
| Direct host-distro repository compatibility | not direct · conversion | DEB/APT default | RPM-md default | sync repos default | separate Nix repos |
| Reversible native tracking without authority transfer | preview-supported | No | No | No | No |
| Strict content-addressed package files or outputs | package files | No | No | No | experimental outputs |
| Binary package-payload delta downloads | roadmap only | No core support | No in DNF5 | No | No standard path |
| Package-history inverse transaction | changeset-limited | APT 3.1+ | built-in history | No | generation switch |
| Bootloader-selectable whole-system generations | VM-only | No | rpm-ostree stack | No | NixOS default |
| Alternate root or foreign-architecture tooling | bootstrap research | companion workflow | built-in | built-in | different model |
| Cross-target package portability | preview core | Debian-family model | RPM-family model | Arch package model | broad host support |
Row definitions
Application semantics
APT resolves and downloads, then dpkg mutates installed paths. Current APT adds history reversal, but interrupted work can still require repair or completion.
DNF resolves, verifies, tests, and executes an RPM transaction. History undo and rollback create inverse package actions rather than switching to a retained filesystem image.
pacman prepares and checks a transaction, then commits changes in place. Cached packages support manual recovery, not native transaction undo.
Nix builds side-by-side store paths and atomically repoints profiles. NixOS retains bootable generations, while live activation can still perform stateful service work.
Practical trade-offs
APT is the established DEB workflow. APT 3 adds a SAT fallback and version-gated history rollback, while dpkg still applies package state in place. Conary can install RPM or Arch inputs on the same host without asking apt or dpkg to own the transaction.
DNF5 uses libsolv and has built-in history reversal. Fedora stopped generating delta RPMs in Fedora 40. Conary adds source-independent DEB and Arch package execution, a reversible adoption bridge, and VM-focused generations.
pacman keeps a direct prepare-and-commit model without native transaction undo or binary payload deltas. Conary can consume RPM and DEB inputs on Arch while retaining their source-native transaction semantics.
Nix has an established immutable store, atomic profile switching, and a much larger package ecosystem; NixOS adds mature bootable system generations. Strict content-addressed derivation outputs remain experimental rather than the default.
Flatpak and Snap distribute applications through runtime or container boundaries. Conary addresses base-system packages, libraries, services, and package authority. They solve different layers and can coexist.
Conary 0.16.1 is an immutable published preview artifact, but it is not current tester authority while the ordinary-package corpus gate remains open. Native CCS packages are few, the cross-distro lifecycle matrix still needs wider installed-host evidence, generation work is VM-only, and the community and operational evidence are small beside established managers.
Method and sources
Third-party extensions are excluded unless a cell names an add-on or separate stack.
The useful question