cpak brings OCI application packaging to every Linux distribution
Cpak – OCI application package format for Linux desktops, servers and devices

cpak is a new OCI application package format for Linux desktops, servers, and devices. It ships as two static binaries with a single shared content store, uses familiar Dockerfile syntax and layer caching without a production daemon, binds host GPU drivers at launch, and supports Git-native versioning by tag, branch, or commit SHA. The same manifest works across Ubuntu, Fedora, Arch, Red Hat, and openSUSE.
Deploy as freely as you develop.
- nine_k
In short: structurally like Docker (reuses Dockerfiles), but without a daemon, and, unlike Podman or Nix, very lightweight, only two binaries do everything.
Common chunks of data are shared / deduplicated across installed packages, again like Docker or Nix.
The runtime is under LGPL2.
- stephenlf
> Follow a complete course, change real manifests and see what cpak accepts, refuses or changes. Professional paths lead to an exam and a public, verifiable credential.
Holy Claude
- _russross
I've been a Debian user since the late 90s, and their packaging system is the main reason. Not the tools and package format, but the culture and strict rules that govern inclusion in the system.
Every time I see a new package system that promises to free creators of the burden of integration and compatibility with the rest of my installed software, it's a hard "no" from me--and there have been a lot of these over the years. The promise is always how easy and carefree it is for packagers, but the things that make Debian harder are the things that make it valuable. Careful integration with the rest of the system with matching dependency versions. Modular, carefully partitioned packages for complex systems that would otherwise be all-or-nothing. Ongoing maintenance and updates. Responsiveness to security updates. Following common rules for configuration, directory placement, init/systemd integration, etc.
cpak looks like yet another system designed to ignore the rest of my system as much as it can and live in its own little world. In other words, designing around the needs and goals of software packagers over the needs of users and long-term system maintenance. Solving the easy problems instead of the hard ones.