DEBARCHIVER(1)

πŸ“¦
version 0.11.7build1 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

πŸ¦‹ debarchiver(1) β€” the Debarchiver era πŸ¦‹

okay bestie, welcome to the debarchiver page πŸ’– this is the Debarchiver manual, and we're gonna get you fully fluent in it. grab a snack. πŸ“


✨ NAME ✨

debarchiver β€” the tool that sorts debian packages into a package archive. no cap. πŸ’…


🌸 SYNOPSIS 🌸

debarchiver [options]

πŸ’– DESCRIPTION πŸ’–

so basically, the debian archiver is a tool that installs debian packages into a file structure that's suitable for apt-get, aptitude, dselect and similar tools. lowkey iconic, fr fr.

you can use it to update your Debian system. it's meant to be used by local administrators who need special packages, or tweaked versions, to make administration easier. main character sysadmin energy. πŸ‘‘

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


πŸ‘‘ OPTIONS πŸ‘‘

  • -a | --autoscan β€” does both --autoscanpackages and --autoscansources. two-for-one deal, slay. ✨
  • --autoscanall β€” same as --scanall --autoscan.
  • --autoscanpackages β€” automatically run dpkg-scanpackages after all new packages are installed.
  • --autoscansources β€” automatically run dpkg-scansources after all new packages are installed.
  • -b | --bzip β€” create bzip2 compressed Packages.bz2 and Sources.bz2 files. compression girlies rise up πŸŽ€
  • --cachedir dir β€” the apt-ftparchive package cache directory, if --index is used. the default is $cachedir.
  • --cinstall dir β€” where the .changes file will be installed to. use the empty string to remove the .changes file instead. the default is $cinstall.
  • --configfile file β€” specifies an extra configuration file to read. it will be read after etc configuration and after user configuration files.
  • --copycmd β€” the install command to use, where the default is $copycmd. both packages and .changes files are installed using this command.
  • -d | --dest | --destdir dir β€” 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.
  • --debug-level | --dl level β€” what information should be printed. 1=critical, 2=error, 3=normal, 4=message, 5=debug, 6=verbose debug (modules).
  • --distinputcriteria β€” the criteria for what binary packages should be installed even if they do not have a .changes file. the default is $distinputcriteria.
  • --gpgkey β€” the GnuPG key to use to sign the archive.
  • --gpgpassfile β€” the file that provides the password to GnuPG.
  • --help β€” prints this information. hi bestie πŸ‘‹
  • -i | --input | --indir | --inputdir dir β€” 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.
  • --ignoredestcheck β€” force install of .changes file even if some files specified in the .changes file already exists with wrong size or md5 hash. 😭 chaotic but okay
  • --incompletetime β€” the time to allow .changes file to be incomplete, in seconds. the default is 24 hours.
  • --index | -x β€” automatically run apt-ftparchive after all new packages are installed. use this or --autoscan, not both. pick a lane bestie πŸ’…
  • --instcmd β€” DEPRECATED! πŸ’€ do not use, she's retired
  • --lockfile file β€” the lockfile to use. the default is $lockfile.
  • --mailcmd β€” 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. πŸ™ˆ
  • --mailformat β€” 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
  • --mailfrom β€” specify mail sender.
  • --majordefault β€” default major section to use. the default is 'main'.
  • --movecmd β€” command to move files (currently not used at all). she's just vibing in the options list, not doing anything. πŸ¦‹
  • --nosort β€” do not sort packages.
  • --nostructurefix β€” do not create directories and touch Package files.
  • -o | --addoverride β€” automatically add new packages to the override file.
  • --quit-level level β€” on what level to quit the application, see debug level.
  • --rmcmd β€” the remove command to use. the default is $rmcmd. this can be used to move away the old packages to some other place.
  • --scanall β€” scan all distributions, sections, etc. everything everywhere all at once ✨
  • --scandetect | -s β€” 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. πŸ‘‘
  • --scanonly β€” same as --nosort --nostructurefix.
  • -v | --version β€” prints the version string.

πŸŽ€ CONFIGURATION FILES πŸŽ€

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. iykyk. πŸ’–

the configuration files are read as perl modules, so they should end with a true value. therefore they should always end with a line that states '1;'. do not forget your '1;' bestie, she is load-bearing 😭

  • $bzip β€” if set to 0 no bzip2 files will be generated. if set to 1 bzip2 files will be generated.
  • $cachedir β€” the cache directory for apt-ftparchive used if --index is used.
  • $cinstall β€” where the .changes files are installed (see --cinstall above).
  • $copycmd β€” the install command (see --copycmd).
  • $destdir β€” the destination directory (see --destdir above).
  • $distinputcriteria β€” the criteria for which packages that should be installed even if it does not have a .changes file. the default is $distinputcriteria.
  • %distinputdirs β€” 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 causes uploads to a specific queue to place the package into that distribution directly.
  • $gpgkey β€” 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. πŸ”
  • $gpgpassfile β€” the file that contains the passphrase for the GnuPG key. see $gpgkey for more information.
  • $ignoredestcheck β€” 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).
  • $incompletetime β€” time to allow .changes files to be incomplete, in seconds. useful for slow uploads. the default is 24 hours. 🐌
  • $inputdir β€” the input directory (no effect in $inputconfigfile).
  • $lockfile β€” the lockfile to use. the default is $lockfile.
  • @mailtos β€” 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. πŸ“§
  • $mailformat β€” the format to use to send emails (see --mailformat above).
  • $mailfrom β€” specifies the sender of emails. the default is none ("").
  • $majordefault β€” default major section (see --majordefault above).
  • $movecmd β€” the move command (see --movecmd).
  • %release β€” additional information to add to generated Release files. supported keys are 'origin', 'label', and 'description'.
  • $rmcmd β€” the remove command (see --rmcmd above).
  • $vrfycmd β€” the verify command. deprecated. still functional but you are adviced to set @vrfycmd instead, as the $vrfycmd may be removed in future releases. πŸ’€
  • @vrfycmd β€” the verify command. if the @vrfycmd list is empty, it is set to the list ($vrfycmd) just before the verify command is executed. it was made like this for backwards compatibility reasons.
  • $verifysignatures β€” choose to enable (1) or disable (0) signature verification for packages uploaded into $inputdir (not %distinputdirs).
  • $verifysignaturesdistinput β€” choose to enable (1) or disable (2) signature verification for packages uploaded into %distinputdirs. this works independently from $verifysignatures.
  • $usermailcmd β€” 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. πŸ™ˆ

πŸ¦‹ PACKAGE INDEXING πŸ¦‹

there are two ways to generate the indexes that apt-get relies on. pick your fighter. βš”οΈ

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. seriously bestie, not both. πŸ’…

the default action (and the recommended) is --scandetect, which probes for installed software and uses the best choice depending on what software you have installed (it chooses between --index and --autoscan right now). ✨

okay that's it for part 1 β€” more is coming, don't go anywhere bestie 🫢

πŸ’€ REJECT πŸ’€

okay so when does a changes file get rejected? bestie, there are five whole situations and they are all lowkey tragic:

  • a file that's about to be installed already exists in the archive and it is not identical to the one that's about to be installed. like, we already have one and they don't match, so no πŸ’…
  • the changes file is incomplete and it's been sitting there for $incompletetime time. it's giving abandoned.
  • a file that's part of the changes file isn't big enough yet, and the changes file has been hanging around for $incompletetime time. still cooking, but the timer ran out 🫠
  • a file that's part of the changes file is bigger than specified. too much. oversized. not the vibe.
  • verify signatures is enabled and the signatures do not match. nope. blocked. 🚫

✨ EXAMPLES ✨

okay so the source page literally has the word head sitting right here before this heading, and honestly? we don't know her either, bestie. moving on πŸŽ€

so like β€” imagine you just uploaded a package to the repository, say with dput(1), and you are not about to sit there waiting for the cron process to pick it up like some kind of patient person. you're not. you can force immediate handling of the incoming queue with this command. and the second option? it lets you overwrite existing archive files, which is exactly the energy we need here.

# debarchiver --scandetect --addoverride

go off, queen πŸ‘‘


πŸ“ FILES πŸ“

  • /etc/debarchiver.conf

πŸ‘€ SEE ALSO πŸ‘€


πŸ‘‘ AUTHOR πŸ‘‘

Ola Lundqvist <ola@inguza.com>


that's the whole page bestie, you made it to the end, I'm so proud πŸ₯Ή this was the Debarchiver manual page, dated Tue, 25 Nov 2025 19:13:16 +0000 (yes, that's the date and version info from the footer, I'm putting it here instead of just copying the line, you're welcome πŸ’–). now go archive something. slay. πŸ’…βœ¨

πŸ“¦ where this page comes from