Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Títulos Texto
Quitar mensaje
This document summarizes the process of setting up a Debian package repository. It does not describe the format of a Debian repository.
Care has been taken to provide the most accurate information at the time of writing. Please fix any identified mistakes.
Tabla de Contenidos
1. Debian Repository Types
2. Repository instructions
3. Debian Repository Generation Tools
1. dak (Debian Archive Kit)
2. mini-dak
3. reprepro
4. mini-dinstall
5. debarchiver
6. debpool
7. DebMarshal
8. apt-ftparchive
9. dpkg-scanpackages and dpkg-scansources
1. Quick instructions to create a trivial local archive with dpkg-scanpackages
10. aptly
11. debify
12. local-apt-repository
4. Debian Repository Mirroring Tools
1. ftpsync
2. reprepro for partial mirroring
3. debmirror
4. apt-mirror
5. debpartial-mirror
6. apt-move
7. aptly
8. anonftpsync (deprecated)
5. Related software
6. See also
These archives have different meta-data structure. Both archives can store actual package files. Many older repository HOWTOs (e.g. old "Debian
Reference (sarge)" and "APT HOWTO (sarge)") address creation of a "trivial archive" and are problematic since the "trivial archive" lacks support
for apt-pinning meta-data used by APT Preferences due to the collision of 2 types of Release files.
For the secure APT compatibility, the modern package archive must be signed by GPG.
References:
Repository instructions
The best practices for creating repository usage instructions are available in RepositoryInstructions.
The full package archive similar to the official archive can be created using:
dak
mini-dak
The Private Package Archive (PPA) can be created on a web server with a shell account using:
reprepro
mini-dinstall
Both people.debian.org and alioth.debian.org are installed with these packages. The PPA archives created on these hosts should only be used for
small low-volume experimental archives only.
Do not run high-volume repositories without consulting the host server's maintainer(s).
mini-dak
Goals: Hosting new Debian architectures (Partial and lightweight reimplementation of dak in shell script and with no database dependencies)
Pros:
Easy to setup: edit a config file and run a script to generate the whole structure
No database (the pool is the database)
All .changes files kept for later possible importing into the master repository
Supports mail notifications and does extensive logging
Auto package obsoleting
Repository snapshotting
Supports multiple suites from the Distribution field on the .changes file
Additionally supports multipool (splitting each arch into its own pool, to ease partial mirroring)
Supports upload ACLs based on gpg public keys
Mirror push via ssh
Cons:
Slow on huge repositories (due to not using a real db mainly)
Has been written and tested mainly as a slave archive, so might have some hardcoded stuff which should be fixed to make it work as a
master server
Still has some quirks to be fixed
Download: https://www.hadrons.org/~guillem/debian/mini-dak/
Distributions: not in Debian
Dependencies: ('grep Requires: *' on the source tree)
apt-utils
procmail
gnupg
wget
ssh (optional)
bzip2 (optional)
quinn-diff (optional)
Automatic repositories: Yes
Incoming mechanism: Yes
Pools: Yes
GPG signing: Yes
Inclusion of .deb without .changes: No
Several versions of each package: ??
Sites using it:
unofficial Debian ports ( mini-dak.git)
reprepro
mini-dinstall
debarchiver
debpool
DebMarshal
apt-ftparchive
deb file:/var/lib/mydebs ./
mkdir -p /var/lib/mydebs
Every time you put new files in the directory, you'll have to scan the directory and update aptitude:
Now you can install the package normally, using aptitude or apt-get
aptly
Goal: takes a directory full of Debian packages and creates a signed and properly-structured Debian repository (wrapper around aptly)
Download: https://hub.docker.com/r/spotify/debify/ (docker container)
Source: GitHub
local-apt-repository
Goal: Create local repository from packages dropped into a certain directory
Pros:
Simple to use
Cons:
Repository available only to the local host, not to other machines
Distributions: testing, unstable
Automatic repositories: Yes
Incoming mechanism: Not needed. Packages are added by putting them into a fixed directory
Pools: No
GPG signing: No
Inclusion of .deb without .changes: Yes
Several version of each pacakge: ?
ftpsync
debmirror
Description: Debian partial mirror script, with ftp and package pool support
Package: debmirror
apt-mirror
debpartial-mirror
apt-move
Description: Mirror remote repositories and manage local repositories, take snapshots, merge them, pull packages from one snapshot to
another, publish snapshots as repositories
Download & Documentation: http://www.aptly.info/
Distributions: testing, unstable
Source: GitHub
Presentation: PDF
anonftpsync (deprecated)
Related software
netselect selects the fastest mirrors from a list you give, and netselect-apt does the same from all existing mirrors.
apt-spy does something similar with a different method.
dput and dupload: uploads one or more Debian packages into a repository.
parse-apt-files.inc PHP-script by Jarno Elonen produces a nice XHTML-summary of available packages in a repository - enhanced
version for special usage with (but not limited to) debarchiver. There seems to be some efforts to develop a wordpress-plugin based on
these scripts.
See also
software-properties-gtk
SecureApt
RepositoryInstructions
CategoryPackageManagement | CategoryDeveloper