This document summarises what I have found about settling a Debian repository.
I have taken care of providing the most correct information at the time of writing but if you find any inaccuracy, please, fix it.
In [http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html Aaron Isotton how-to] two kinds of repositories are defined, the trivial repositories (where the user of the repository has to specify an exact path to the packages) and the automatic repositories (that mimic the official Debian repositories where only the base path, distribution and component have to be specified and the apt-get magic occurs). His how-to describes how to setup trivial repositories with dpkg-scansources and dpkg-scanpackages. Such a topic is also covered by [http://www.interq.or.jp/libra/oohara/apt-gettable/apt-gettable/ Oohara Yuuma how-to] and [http://www.debian.org/doc/manuals/apt-howto/ch-basico.html#s-dpkg-scanpackages apt how-to].
The settling of automatic repositories is covered by [http://familiasanchez.net/~sanchezr/?page=debrepository Roberto Sanchez how-to] who gives relevant scripts. Pools are not covered there.
There are also packaged (or not) tools in Debian in order to perform the task:
?TableOfContents
The following paragraphs contain more info about these applications.
dak (Debian Archive Kit)
- Goals: Packaging of the tools handling the official Debian repositories.
- Pro: Real stuff.
- Cons: Depends on python and PostgreSQL (even if on an other host).
Package: http://packages.qa.debian.org/d/dak.html
- python
- postgresql (optional)
- Distributions: Sarge (1.0), Sid (1.0)
Dependencies: http://packages.debian.org/unstable/devel/dak
- Automatic repositories: Yes
- Incoming mechanism: Yes
- ["Pool"]s: Yes
- GPG signing: Yes
reprepro (formerly known as mirrorer)
- Goals: Local Debian package repository storing files in a pool/ directory.
- Pro: Strict checking of what comes in, no database server needed.
- Cons:
- Distributions: Sarge (0.3), Sid (0.6)
Dependencies: http://packages.debian.org/unstable/utils/reprepro
- Automatic repositories: Yes
- Incoming mechanism: Yes
- Pools: Yes
- GPG signing: Yes
debpool
- Goals: Lightweight replacement for dak using a pool layout.
- Pro: No external dependencies.
- Cons:
- Distributions: experimental (0.2.2)
Dependencies: http://packages.debian.org/experimental/devel/debpool
- perl
- gnupg (optional)
- Automatic repositories: Yes
- Incoming mechanism: Yes
- Pools: Yes
- GPG signing: Yes (with gnupg).
- Wiki page: ["debpool"]
debarchiver
- Goals: Make a simpler version of dak.
- Pro:
- easy to use incoming mechanism - even on remote systems - by using a cron-job
- packages can be moved into a distribution by
- reading the Distribution value from .changes file or
- directly putting the whole package into a distributions-incoming directory.
- Cons:
- no Pool-architecture at the moment
- some useful checks are missing
- cleaning needs to be done manually
- Distributions: Woody (0.0.18), Sarge (0.1.5), Sid (0.5.x)
Dependencies: http://packages.debian.org/unstable/devel/debarchiver
- adduser
- apt-utils (recommended) | dpkg-dev
- opalmod (Perl modules)
- gnupg (optional)
- Automatic repositories: Yes
- Incoming mechanism: Yes
Pools: No (but suggested somewhere at [http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=debarchiver BTS]).
- GPG signing: Yes (with gnupg, post-Sarge feature).
A [http://vipie.studentenweb.org/dev/debarchiver/ debarchiver how-to]. An other nice [http://debian.wgdd.de/debhowtos/howto-aptrep.de.html debarchiver how-to (in German)]
An [http://debian.wgdd.de/debian/ example of a repository] [http://debian.wgdd.de/repository produced with debarchiver].
mini-dinstall
- Goals: Miniature version of dak.
- Pro: Doesn't require a PostgreSQL database.
- Cons:
- Distributions: Sarge (0.6.21), Sid (0.6.21)
Dependencies: http://packages.debian.org/unstable/devel/mini-dinstall
- apt-utils
- python2.3
- python-apt
- Automatic repositories: Yes (?)
- Incoming mechanism: Yes
- Pools: No
- GPG signing: Yes (external script and setup example provided in documentation)
apt-ftparchive
- Goals: Superset of dpkg-scanpackages and dpkg-scansources.
- Pro: Does not rely on any external programs aside from gzip.
- Cons:
- Distributions: Woody (0.5.4), Sarge (0.5.28.6), Sid (0.6.41)
Dependencies: http://packages.debian.org/unstable/admin/apt-utils
- Automatic repositories: No
- Incoming mechanism: No
- Pools: No
- GPG signing: No
dpkg-scanpackages and dpkg-scansources
- Goals:
- Pro:
- Cons: Cannot create Release nor Contents files.
- Distributions: Woody (1.9.21), Sarge (1.10.28), Sid (1.13.11)
Dependencies: http://packages.debian.org/unstable/utils/dpkg-dev
- Automatic repositories: No
- Incoming mechanism: No
- Pools: No
- GPG signing: No
Related software
- netselect selects for you the fastest mirrors among the list you give and netselect-apt does it among all existing mirrors.
- apt-spy does something similar with a different method.
- dput uploads one or more Debian packages into a repository.
[http://elonen.iki.fi/code/parse-apt-files.inc parse-apt-files.inc] PHP-script by Jarno Elonen produces a nice [http://elonen.iki.fi/code/unofficial-debs/ XHTML-summary] of available packages in a repository - [http://debian.wgdd.de/debian/parse-apt-files.inc enhanced version] for special usage with (but not limited to) [#repository_debarchiver debarchiver]. There seems to be some [http://potatosalad.gotdns.com/2005/08/01/repository/ efforts] to develop a wordpress-plugin based on these scripts.