Start of Debian repository description
continuous-integration/drone the build was successful
Details
continuous-integration/drone the build was successful
Details
parent
7559b4ac86
commit
8d07fe732c
|
@ -0,0 +1,54 @@
|
||||||
|
---
|
||||||
|
title: 'Hilde - The Repository Format'
|
||||||
|
date: '2021-06-27'
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
||||||
|
Welcome to the second devlog of Hilde! In this post, I'll be explaining to both
|
||||||
|
myself and the reader what structure Hilde should conform to. This post will
|
||||||
|
describe the most advanced repository possible, and will hopefully allow me to
|
||||||
|
create a proper to-do list of features I have to implement. Note that this post
|
||||||
|
is mostly a re-write of
|
||||||
|
[this article](https://wiki.debian.org/DebianRepository/Format#Overview).
|
||||||
|
|
||||||
|
# Concepts
|
||||||
|
|
||||||
|
## Root
|
||||||
|
|
||||||
|
Each repo has a root from which it serves all files. I'll be referring to this
|
||||||
|
root as `$ROOT` from now on. This root is just the base URL for the repository.
|
||||||
|
Any package on the repo is part of a distribution, which is basically a way to
|
||||||
|
organize packages into categories. For example, the official Debian
|
||||||
|
repositories distinguish between `stable`, `stable/updates`, etc. Here, you can
|
||||||
|
also see that a distribution can contain forward slashes.
|
||||||
|
|
||||||
|
## Distributions
|
||||||
|
|
||||||
|
A distribution is located at `$ROOT/dists/$DIST`, where `$DIST` is the name of
|
||||||
|
the distribution. Each dist provides a `Release` file with an accompanying
|
||||||
|
`Release.gpg`. This GPG key is then used by the package manager to sign
|
||||||
|
the `Release` file. Additionally, the repo provides an `InRelease` file, which
|
||||||
|
is the same as the `Release` file, but already signed using the GPG key. Each
|
||||||
|
dist contains one or more components.
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
Each component is a further sub-category within a distribution. A component
|
||||||
|
contains one or more `binary-$ARCH` subdirectories, where `$ARCH` is the
|
||||||
|
architecture for the binary packages within. Source packages are located inside
|
||||||
|
a `source` subdirectory. For each `binary-$ARCH` & `source` directory, a
|
||||||
|
`Contents-$ARCH` (`Contents-source` resp.) file is provided. This file is
|
||||||
|
usually compressed using gzip, and consists of a list of all files contained
|
||||||
|
within all packages inside the component.
|
||||||
|
|
||||||
|
### `binary-$ARCH` & `source` directories
|
||||||
|
|
||||||
|
These directories contain a `Packages` & `Sources` files respectively, usually
|
||||||
|
provided in a compressed format. These files contain a control-file style list
|
||||||
|
of all the packages contained within the directory.
|
||||||
|
|
||||||
|
# Types of files
|
||||||
|
|
||||||
|
## Release files
|
||||||
|
|
||||||
|
|
Reference in New Issue