Scroll to navigation



debarchiver - Tool to sort debian packages into a package archive.


debarchiver [options]


The debian archiver is a tool that installs debian packages into a file structure suitable for apt-get, aptitude, dselect and similar tools. This can be used for updating the Debian system. It is meant to be used by local administrators that need special packages, or tweaked versions to ease administration.

The file structure is based on the potato file structure and does not support package pools.


Does both --autoscanpackages and --autoscansources.
Same as --scanall --autoscan.
Automatically run dpkg-scanpackages after all new packages are installed.
Automatically run dpkg-scansources after all new packages are installed.
Create bzip2 compressed Packages.bz2 and Sources.bz2 files.
The apt-ftparchive package cache directory, if --index is used. The default is $cachedir.
Where the .changes file will be installed to. Use the empty string to remove the .changes file instead. The default is $cinstall.
Specifies an extra configuration file to read. Will be read after etc configuration and after user configuration files.
The install command to use where the default is $copycmd. Both packages and .changes files are installed using this command.
Destination directory. The base directory where all the distribution packages will reside and where the $distrib/$major/$arch/$section directory structure will be created. The default is $destdir, relative to the input directory.
What information that should be printed. 1=critical, 2=error, 3=normal, 4=message, 5=debug, 6=verbose debug (modules).
The criteria for what binary packages should be installed even if they do not have a .changes file. The default is $distinputcriteria.
The GnuPG key to use to sign the archive.
The file that provides the password to GnuPG.
Prints this information.
This is the directory where debarchiver will look for new package versions and corresponding *.changes files that should be installed to the --dest directory. The default is $instdir.
Force install of .changes file even if some files specified in the .changes file already exists with wrong size or md5 hash.
The time to allow .changes file to be incomplete in seconds. The default is 24 hours.
Automatically run apt-ftparchive after all new packages are installed. Use this *or* --autoscan, not both.
The lockfile to use. The default is $lockfile.
The command to use to send emails. The default behavior is to use the sendmail command. You can disable email sending by specifying the /bin/true command.
Defines the format to be used to send emails with, by the command specified by --mailfrom. Only 'sendmail' and 'mail' formats are supported. By default debarchiver assumes 'sendmail' format. The argument can be one of the following:
sendmail = use of the sendmail format
mail = use of the mail format
Specify mail sender.
Default major section to use. The default is 'main'.
Command to move files (currently not used at all).
Do not sort packages.
Do not create directories and touch Package files.
Automatically add new packages to the override file.
On what level to quit the application, see debug level.
The remove command to use. The default is $rmcmd. This can be used to move away the old packages to some other place.
Scan all distributions, sections, etc.
Scan using 'apt-ftparchive' or 'dpkg-scan*' (dpkg-scanpackages and dpkg-scansources) depending on what is installed on the system. This is the recommended way. Only use --index or --autoscan if you know what you are doing.
Same as --nosort --nostructurefix.
Prints the version string.


You can also place configuration files with the following names (in the following order) /etc/debarchiver.conf, ~/.debarchiver.conf and input.conf (relative to input directory) that will be read before the arguments to this program will be parsed. In the above files you can change the following variables:

The configuration files are read as perl modules they should end with a true value. Therefore they should always end with a line that states '1;'.

If set to 0 no bzip2 files will be generated. If set to 1 bzip2 files will be generated.
The cache directory for apt-ftparchive used if --index is used.
Where the .changes files are installed (see --cinstall above).
The install command (see --copycmd).
The destination directory (see --destdir above).
The criteria for which packages that should be installed even if it does not have a .changes file. The default is $distinputcriteria.
Directories (distribution => dir) to be searched for extra binary packages that does not need a .changes file to be installed but match $distinputcriteria. The default is to accept kernel packages generated by make-kpkg (which does not generate a .changes file). Additionally binary packages with a valid .changes file will have the default distribution overridden to be the current queue directory. This cause uploads to a specific queue to place the package into that distribution directly.
The GnuPG key to use to sign the archive. If this variable is set, the Release file for each changed section of the archive will be signed with GnuPG using $gpgkey as the key ID. Unless you use a key that has no passphrase or use $gpgpassfile, you will need to run debarchiver interactively when using this option so that you can supply the passphrase.
The file that contains the passphrase for the GnuPG key. See $gpgkey for more information.
Force install of .changes file even if some files specified in the .changes file already exist with wrong size or md5 hash. Default to 0 (do not ignore).
Time to allow .changes files to be incomplete in seconds. Useful for slow uploads. The default is 24 hours.
The input directory (no effect in $inputconfigfile).
The lockfile to use. The default is $lockfile.
An array of strings that will receive emails. If the string contains an email address that one is used. If it contains an incomplete email address, i.e. @hostname, the username owning the file is used @ the hostname specified. If no '@' character is found in the string, it is considered as a field in the .changes file. Such a field can for example be Maintainer or Uploaders.
The format to use to send emails (see --mailformat above).
Specifies the sender of emails. The default is none ("")
Default major section (see --majordefault above).
The move command (see --movecmd).
Additional information to add to generated Release files. Supported keys are 'origin', 'label', and 'description'.
The remove command (see --rmcmd above).
The verify command. Deprecated. Still functional but you are adviced to set @vrfycmd instead as the $vrfycmd may be removed in future releases.
The verify command. If the @vrfycmd list is empty is set to the list ($vrfycmd) just before the verify command is executed. It was made like this for backwards compatibility reasons.
Choose to enable (1) or disable (0) signature verification for packages uploaded into $inputdir (not %distinputdirs).
Choose to enable (1) or disable (2) signature verification for packages uploaded into %distinputdirs. This works independently from $verifysignatures.
It allows the user to tell debarchiver to use a specific command to send emails. You may also want to specify the mailformat your mail command handles by setting the value of the $mailformat variable. Using the --mailcmd option on the command line will superseed this variable. You can disable email sending by specifying the /bin/true command.


There are two ways to generate the indexes that apt-get relies on.

Using --autoscanpackages, --autoscansources, or --autoscan will use dpkg-scanpackages and dpkg-scansources. This will generate the Packages and Sources files, but will not generate Contents files and can be slow with a large repository.

Alternatively, the --index config option will call apt-ftparchive to index the package tree. apt-ftparchive can also generate Contents files (for use with apt-file), and can optionally use a cache of package information to speed up multiple runs. The apt-ftparchive configuration file will be generated automatically. This is however not fully tested.

You should use either --autoscanpackages and --autoscansources or --index, not both, as they do basically the same thing.

The default action (and the recommended) is --scandetect that probe for installed software and use the best choice depending on what software you have installed (chooses between --index and --autoscan right now).


Changes files are rejected in the following conditions:
* A file that is about to be installed already exist in the archive and is not identical to the one that is about to be installed.
* Changes file is incomplete and has been there for $incompletetime time.
* A file that is part of the Changes file is not yet big enough and the changes file has been there for $incompletetime time.
* A file that is part of the Changes file is bigger than specified.
* Verify signatures is enabled and signature do not match.


Suppose you have just uploaded package to repository e.g. with dput(1), and you don't want to wait for the cron process to pick them up. You can force immediate handling of incoming queue with this command. The second option allows overwriting existing archive files.

 # debarchiver --scandetect --addoverride






Ola Lundqvist <>

Tue, 07 Sep 2021 14:10:31 +0100 Debarchiver