cpakがLinuxのアプリ配布をOCIで再発明、Dockerfile構文でネイティブ動作
Cpak – OCI application package format for Linux desktops, servers and devices

cpakはLinuxデスクトップ、サーバー、デバイス向けのOCIアプリケーションパッケージ形式。Dockerfileに似た構文とレイヤーキャッシュでビルドでき、本番環境ではコンテナデーモン不要。2つの静的バイナリと共有コンテンツストアで超軽量に動作し、ホストGPUやDBus、ソケット、デバイスへのアクセスを宣言的に制御。GitネイティブのバージョニングでタグやコミットSHAを指定してインストールできる。Ubuntu、Fedora、Arch Linuxなど主要ディストリビューションでそのまま動作する。
Dockerスタイルの互換性:本番環境でコンテナデーモンを使わずに、おなじみのDockerfile構文、レイヤーキャッシュ、インクリメンタルビルドを実現。
HNでの議論
21- nine_k
要するに、構造的にはDockerに似ている(Dockerfileを再利用する)が、デーモンがなく、PodmanやNixとは違って非常に軽量で、すべてを実行するバイナリはたった2つだけだ。
共通のデータチャンクは、インストールされたパッケージ間で共有・重複排除される。これもDockerやNixと同じだ。
ランタイムはLGPL2の下にある。
- stephenlf
> 完全なコースに従い、実際のマニフェストを変更し、cpakが何を受け入れ、拒否し、あるいは変更するかを確認する。プロフェッショナルな道は試験と公的に検証可能な資格につながる。
なんてこった
- _russross
私は90年代後半からDebianユーザーだが、その主な理由は彼らのパッケージシステムにある。ツールやパッケージ形式ではなく、システムへの収録を統治する文化と厳格なルールだ。
新しいパッケージシステムが、インストールされている他のソフトウェアとの統合や互換性の負担から作成者を解放すると約束するたびに、私は断固として「ノー」と言う——そして、ここ数年でそうしたものはたくさんあった。約束はいつも、パッケージ作成者にとってどれほど簡単で気楽かということだが、Debianを難しくしているものこそが、Debianを価値あるものにしている。依存関係のバージョンを一致させた、システムの残りの部分との慎重な統合。さもなければオール・オア・ナッシングになってしまう複雑なシステム向けの、モジュール化され慎重に分割されたパッケージ。継続的なメンテナンスと更新。セキュリティ更新への迅速な対応。設定、ディレクトリ配置、init/systemd統合などに関する共通ルールの遵守。
cpakは、私のシステムの残りの部分をできるだけ無視し、自分だけの小さな世界に住むように設計された、また別のシステムのように見える。言い換えれば、ユーザーと長期的なシステムメンテナンスのニーズよりも、ソフトウェアパッケージ作成者のニーズと目標を中心に設計されている。難しい問題ではなく、簡単な問題を解決しているのだ。