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/
├── 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 metadataSources— Index of source packagesRelease— 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.