Archive Layout

Structure and organization of ProteanOS package archives.

Overview

Package archives in ProteanOS follow a defined layout that enables efficient distribution, mirroring, and tool integration. Understanding this structure is helpful for maintainers, mirror operators, and anyone working with package infrastructure.

Archive Structure

Archive directory layout
archive/
├── dists/
│   └── stable/
│       ├── main/
│       │   ├── binary-arm/
│       │   │   ├── Packages
│       │   │   └── Packages.gz
│       │   └── source/
│       │       ├── Sources
│       │       └── Sources.gz
│       └── Release
├── pool/
│   └── main/
│       ├── a/
│       │   └── example-app/
│       │       ├── example-app_1.0.0.opk
│       │       └── example-app_1.0.0.dsc
│       └── lib/
│           └── example-lib/
│               └── ...
└── project/
    └── trace/

Distribution Directory

The dists/ directory contains metadata about available packages, organized by distribution (stable, testing, etc.) and component.

  • Packages — Index of binary packages with metadata
  • Sources — Index of source packages
  • Release — Distribution metadata and checksums

Package Pool

The pool/ directory stores actual package files, organized by component and package name prefix. This layout allows multiple distributions to reference the same package files without duplication.

Index Files

Index files enable package tools to discover and resolve packages without downloading the entire archive:

  • Packages file lists all binary packages with dependencies and descriptions
  • Sources file lists source packages with build dependencies
  • Release file provides checksums for integrity verification

Mirroring

The archive structure supports efficient mirroring using standard tools like rsync. Mirror operators should synchronize the entire archive tree to maintain consistency.

Frequently Asked Questions

Why is the pool separate from dists?

Separation allows multiple distributions to share package files, reducing storage needs and simplifying updates.

How often are index files updated?

Index files are regenerated when packages are added or removed. The frequency depends on archive maintenance practices.

Can I create a local archive?

Yes, ProKit includes tools for creating and maintaining local archives, useful for development and testing.