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