MINI-DINSTALL(1)
πΈ MINI-DINSTALL(1) πΈ
okay bestie, welcome to the mini-dinstall manual page π this is the one and only, from section 1 of the manual, and she's a whole icon. buckle up, we're going in π«Ά
β¨ NAME β¨
mini-dinstall β daemon for updating Debian packages in a repository π
π¦ SYNOPSIS π¦
mini-dinstall [options] [directory]
π DESCRIPTION π
so like, mini-dinstall is a tool for installing Debian packages into a personal APT repository. it's giving very similar to the dinstall tool on auric: it takes a changes file and installs it into the Debian archive. no cap π
the main character of this whole operation is a changes file. this file specifies a set of Debian binary packages, and often contains a source package too. changes files are literally designed to group both Debian source and binary packages together, so that there's a single file to manipulate when uploading a package. one file, so much power β¨
mini-dinstall takes a changes file in its incoming directory (or on its command line in batch mode, iykyk), and installs the files it references into a directory, and sets up Packages and Sources files for use with APT. slay.
π RUNNING π
mini-dinstall can run in one of two modes: batch mode or daemon mode. in batch mode, the queue is processed immediately, and the command exits when it is done. in daemon mode β which is the default, just so you know π β mini-dinstall runs in the background and continually checks the queue, and will process it whenever it has changed.
the optional directory argument specifies the root directory of the queue. if no argument is specified, the value from the configuration file is used.
the following options can be used:
-v,--verboseβ display extra information while running-q,--quietβ display as little information as possible π€«-c,--config=FILEβ useFILEas the configuration file, instead of~/.mini-dinstall.conf-d,--debugβ output debugging information to the terminal and to the log-f,--foregroundβ run in daemon mode but do not detach from the console--no-logβ don't write any information to the logs--no-dbβ disable lookups on package database.apt-ftparchiverun without--dboption-n,--no-actβ don't perform any changes; useful in combination with the-vflag-b,--batchβ run in batch mode-r,--runβ tell the currently running daemon to process the queue immediately-k,--killβ kill the currently running daemon π--helpβ display a short overview of available options--versionβ display the software version
π CONFIGURATION π
mini-dinstall's main configuration file is ~/.mini-dinstall.conf. the file consists of a number of different sections, each one applying to a different distribution (which corresponds to the Distribution field in a changes file). there is also a default section (DEFAULT), which applies to all distributions. bestie, she's organized π
each section can contain any number of
name = value
combinations, which set a configuration parameter for that distribution (or the default one). lists should be separated by commas, and strings need only be enclosed with quotes if they contain spaces or commas.
the configuration parameters available in the DEFAULT section are as follows:
archivedirβ the root of themini-dinstallarchive. must be set, either here or on the command line.extra_keyringsβ additional GnuPG keyrings to use for signature verification.incoming_permissionsβ the permissions for the incoming directory.mini-dinstallwill attempt to set the directory's permissions at startup. a value of zero (0or0o000) will disable permission setting. doing this, you MUST set permission for incoming by hand! defaults to0o750.keyringsβ GnuPG keyrings to use for signature verification of changes files. setting this parameter will modify the default list; it is generally better to modifyextra_keyringsinstead. defaults to the keyrings from thedebian-keyringpackage.logfileβ the filename (relative toarchivedir) where information will be logged. defaults tomini-dinstall.log.mail_log_flush_countβ number of log messages after which queued messages will be sent to you. defaults to10.mail_log_flush_levelβ the log level upon which to immediately send all queued log messages. valid values are the same as for themail_log_leveloption. defaults toERROR.mail_log_levelβ the default log level which is sent to you by email. valid values includeDEBUG,INFO,WARN,ERROR, andCRITICAL. defaults toERROR.mail_toβ the user to whom logs should be mailed. defaults to the current user.mail_subject_templateβ style of the email subject. available substitution variables aresource,version,maintainer, ... (all statements in.changes) andchanges_without_dot(same aschanges, but without lines with only a dot). default is:
mini-dinstall: Successfully installed %(source)s %(version)s to %(distribution)s
mail_body_templateβ style of the email body. valid values are the same as for themail_subject_templateoption. default is:
Package: %(source)s
Maintainer: %(maintainer)s
Changed-By: %(changed-by)s
Changes:
%(changes_without_dot)s
tweet_serverβ server to push tweets. possible values aretwitteroridenticatweet_userβ username to login on tweet servertweet_passwordβ password to login on tweet server πtweet_templateβ style of the tweet body. valid values are the same as for themail_subject_templateoption. default is:
Installed %(source)s %(version)s to %(distribution)s
trigger_reindexβ in daemon mode, whether or not to recreate thePackagesandSourcesfiles after every upload. if you disable this, you probably want to enabledynamic_reindex. you may want to disable this if you install a lot of packages. defaults to enabled.use_dnotifyβ if enabled, uses thednotify(1)command to monitor directories for changes. only relevant ifdynamic_reindexis enabled. defaults tofalse.verify_sigsβ whether or not to verify signatures on changes files. defaults to enabled if thedebian-keyringpackage is installed, disabled otherwise.
the configuration parameters that can be set in the DEFAULT section and the distribution-specific sections are:
aliasβ a list of alternative distribution names.architecturesβ a list of architectures to create subdirectories for. defaults toall, i386, powerpc, sparc.archive_styleβ eitherflatorsimple-subdir. a flat archive style puts all of the binary packages into one subdirectory, while the simple archive style splits up the binary packages by architecture. must be set.
sources for the flat style should look like:
deb file:///home/walters/debian/ unstable/
deb-src file:///home/walters/debian/ unstable/
deb file:///home/walters/debian/ experimental/
deb-src file:///home/walters/debian/ experimental/
sources for the subdir style should look like:
deb http://localhost/~walters/debian/ local/$(ARCH)/
deb http://localhost/~walters/debian/ local/all/
deb-src http://localhost/~walters/debian/ local/source/
restrict_changes_filesβ determines if the changes files should be made unreadable by others. this is enabled by default, and is a good thing, since somebody else could unexpectedly upload your package. think carefully before changing this. β οΈdynamic_reindexβ if enabled, directories are watched for changes and newPackagesandSourcesfiles are created as needed. only used in daemon mode. defaults totrue.generate_releaseβ causes aReleasefile to be generated (seerelease_*below) if enabled. disabled by default.keep_oldβ whether or not old packages should be kept, instead of deleting them when newer versions of the same packages are uploaded. defaults tofalse.mail_on_successβ whether to mail on successful installation. defaults totrue.tweet_on_successβ whether to tweet (e.g. ontwitter/identi.ca) on successful installation. defaults tofalse.max_retry_timeβ the maximum amount of time to wait for an incomplete upload before rejecting it. specified in seconds. defaults to two days.poll_timeβ how often to poll directories (in seconds) for changes ifdynamic_reindexis enabled. defaults to 30 seconds.post_install_scriptβ this script is run after the changes file is installed, with the full path of the changes file as its argument.pre_install_scriptβ this script is run before the changes file is installed, with the full path of the changes file as its argument. if it exits with an error, the changes file is skipped.release_codenameβ theCodenamefield in theReleasefile. defaults toNone.release_descriptionβ theDescriptionfield in theReleasefile. defaults toNone.release_labelβ theLabelfield in theReleasefile. defaults to the current user's username.release_originβ theOriginfield in theReleasefile. defaults to the current user's username.release_suiteβ theSuitefield in theReleasefile. defaults toNone.backport_releaseβ if enabled, automatically install package upgrades from this repository only if the installed version of the package is higher than the version of the package in other sources. defaults tofalse.experimental_releaseβ if enabled, packages will not automatically install or upgrade to newer versions from this repository
if this option is set, it overrides the option backport_release. defaults to false.
release_signscriptβ if specified, this script will be called to signReleasefiles. it will be invoked in the directory containing theReleasefile, and should accept the filename of theReleasefile to sign as the first argument (note that it is passed a temporary filename, notRelease). it should generate a detached signature in a file namedRelease.gpg. ποΈ
πΈ USING DPUT πΈ
okay bestie, so here's a whole vibe for you: one of the most convenient ways to use mini-dinstall is to pair it up with dput's βlocalβ method. The author literally tests his own Debian packages this way β he uses dput to upload them to a local repository, and then uses APT's βfileβ method to grab them locally. it's giving self-sufficient icon β¨
Here's a sample dput stanza, verbatim, no edits, slay:
[local]
fqdn = space-ghost.verbum.private
incoming = /src/debian/mini-dinstall/incoming
method = local
run_dinstall = 0
post_upload_command = mini-dinstall -r
ngl, obviously you should swap out the βfqdnβ and βincomingβ values for whatever actually makes sense on <em>your</em> machine π . Some sample APT methods were listed back in the configuration section, so go peek at those if you need inspo π
So now, literally all you have to do to test your Debian packages is this, and I'm obsessed:
$ dpkg-buildpackage
$ dput local ../program_1.2.3-1_powerpc.changes
# wait a few seconds
$ apt-get update
$ apt-get install program
periodt. π¦
π AUTHOR π
mini-dinstall was originally written by Colin Walters <walters@debian.org> and is now maintained by Christoph Goehre <christoph.goehre@gmx.de>. shoutout to the maintainers, fr fr π«Ά
π SEE ALSO π
apt-get(8)dnotify(1)dput(1)gpg(1)
aaaand that's the whole page bestie, we made it to the end and I'm so proud of you π₯Ήπ this one came from the Debian Project, dated December 29, 2003, and it's MINI-DINSTALL(1) β go forth and install your minis, you absolute main character π
β¨πΈ
π¦ where this page comes from
- debian bookworm: mini-dinstall 0.7.2
- debian trixie: mini-dinstall 0.7.3
- ubuntu jammy: mini-dinstall 0.7.1
- ubuntu noble: mini-dinstall 0.7.2
- ubuntu resolute: mini-dinstall 0.7.3
- ubuntu stonking: mini-dinstall 0.7.3ubuntu1
- Copyright (c) 2002 Colin Walters <walters@debian.org>
- Copyright (c) 2003 Graham Wilson <graham@debian.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms