DEBARCHIVER(1)
π¦ 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--autoscanpackagesand--autoscansources. two-for-one deal, slay. β¨--autoscanallβ same as--scanall --autoscan.--autoscanpackagesβ automatically rundpkg-scanpackagesafter all new packages are installed.--autoscansourcesβ automatically rundpkg-scansourcesafter all new packages are installed.-b|--bzipβ create bzip2 compressedPackages.bz2andSources.bz2files. compression girlies rise up π--cachedir dirβ theapt-ftparchivepackage cache directory, if--indexis used. the default is$cachedir.--cinstall dirβ where the.changesfile will be installed to. use the empty string to remove the.changesfile 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.changesfiles 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/$sectiondirectory 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.changesfile. 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*.changesfiles that should be installed to the--destdirectory. the default is$instdir.--ignoredestcheckβ force install of.changesfile even if some files specified in the.changesfile already exists with wrong size or md5 hash. π chaotic but okay--incompletetimeβ the time to allow.changesfile to be incomplete, in seconds. the default is 24 hours.--index|-xβ automatically runapt-ftparchiveafter 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 thesendmailcommand. you can disable email sending by specifying the/bin/truecommand. π--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 formatmail= 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 touchPackagefiles.-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-scanpackagesanddpkg-scansources) depending on what is installed on the system. this is the recommended way. only use--indexor--autoscanif 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 to0no bzip2 files will be generated. if set to1bzip2 files will be generated.$cachedirβ the cache directory forapt-ftparchiveused if--indexis used.$cinstallβ where the.changesfiles are installed (see--cinstallabove).$copycmdβ the install command (see--copycmd).$destdirβ the destination directory (see--destdirabove).$distinputcriteriaβ the criteria for which packages that should be installed even if it does not have a.changesfile. the default is$distinputcriteria.%distinputdirsβ directories (distribution => dir) to be searched for extra binary packages that does not need a.changesfile to be installed but match$distinputcriteria. the default is to accept kernel packages generated bymake-kpkg(which does not generate a.changesfile). additionally, binary packages with a valid.changesfile 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, theReleasefile for each changed section of the archive will be signed with GnuPG using$gpgkeyas 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$gpgkeyfor more information.$ignoredestcheckβ force install of.changesfile even if some files specified in the.changesfile already exist with wrong size or md5 hash. default to0(do not ignore).$incompletetimeβ time to allow.changesfiles 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.changesfile. such a field can for example beMaintainerorUploaders. π§$mailformatβ the format to use to send emails (see--mailformatabove).$mailfromβ specifies the sender of emails. the default is none ("").$majordefaultβ default major section (see--majordefaultabove).$movecmdβ the move command (see--movecmd).%releaseβ additional information to add to generatedReleasefiles. supported keys are'origin','label', and'description'.$rmcmdβ the remove command (see--rmcmdabove).$vrfycmdβ the verify command. deprecated. still functional but you are adviced to set@vrfycmdinstead, as the$vrfycmdmay be removed in future releases. π@vrfycmdβ the verify command. if the@vrfycmdlist 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$mailformatvariable. using the--mailcmdoption on the command line will superseed this variable. you can disable email sending by specifying the/bin/truecommand. π
π¦ 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
$incompletetimetime. 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
$incompletetimetime. 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
- ubuntu resolute: debarchiver 0.11.7build1
- ubuntu stonking: debarchiver 0.11.7build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms