DOSE-DEB-COINSTALL(1)

πŸ’… DOSE-DEB-COINSTALL(1) β€” the dose-debcoinstall glow-up

okay bestie, welcome to dose-debcoinstall, the little tool from the DOSE Tools fam that figures out whether a whole squad of Debian binary packages can actually be installed together. it's giving group project energy, but like, the kind that works out. 🫢


✨ SYNOPSIS ✨

dose-debcoinstall [options] binary-repositories

🌸 DESCRIPTION 🌸

so here's the vibe: dose-debcoinstall determines whether a set of foreground Debian binary packages can be installed together, given a set of background Debian binary packages. no cap. 🧚

if a valid coinstallation set exists, then it is printed on standard output. slay. if not? the application exits with exit code 1 and prints nothing. literally silence. πŸ’€

if the --src option is given, then the associated source packages are printed on standard output instead. periodt.

now, packages are split into foreground and background: only packages in the foreground are checked for coinstallability, but dependencies may be satisfied by foreground packages and by background packages. by default, all packages are in the foreground. main character behavior for everyone. πŸ‘‘


πŸ“₯ INPUT FORMAT πŸ“₯

the binary-repositories argument is a list of filenames containing stanzas in the format of deb-control(5), separated by one blank line. for instance, the Packages files as found on a Debian mirror server, or in the directory /var/lib/apt/lists/ of a Debian system, are suitable. πŸŽ€

the --src option requires a file containing debian source control stanzas, separated by one blank line. for instance, the Sources files as found on a Debian mirror server, or in the directory /var/lib/apt/lists/ of a Debian system, are suitable.


✨ OPTIONS ✨

  • --deb-native-arch=name β€” specify the native architecture. the default behavior is to deduce the native architecture from the first package stanza in the input that has an architecture different from all. πŸ¦‹
  • --deb-foreign-archs=name [,name] ... β€” specify a comma-separated list of foreign architectures. the default is an empty list of foreign architectures. if --deb-host-arch is set, it is used as an implicit foreign architecture.
  • --deb-host-arch=name... β€” specify the host architecture. ⚠️ if this option is given, --deb-native-arch must also be set. no exceptions bestie.
  • -f, --failures β€” print a diagnostic in YAML format containing the list of packages that were attempted to install together and the result of the operation.
  • -v, --successes β€” only show packages that do not fail the installability check. (we're being positive today πŸ’–)
  • -e, --explain β€” explain the results in more detail, providing the reason why some packages cannot be installed together. receipts, basically.
  • --src=source-repository β€” instead of printing binary packages, print the associated source packages as given in the debian Sources file source-repository.
  • --dump=cudf-file β€” dump the CUDF universe to cudf-file, representing the encoding of binary and source packages, plus the coinstallability request.
  • --fg=binary-repository β€” specify a foreground binary repository.
  • --bg=binary-repository β€” specify a background binary repository.
  • --latest n β€” consider only the latest -n most recent versions of each package; older versions of packages are ignored.
  • -v β€” enable info / warnings / debug messages. this option may be repeated up to three times in order to increase verbosity. shout it out, bestie πŸ—£οΈ
  • -h, --help β€” display this list of options.
🚨 ok bestie, listen β€” there are two different -v things going on here. one is -v, --successes and the other is the lowercase -v verbosity counter. yes, fr fr. that's just how the page says it. don't come for me.

🚦 EXIT CODES 🚦

exit codes 0-63 indicate a normal termination of the program. codes 64-127 indicate abnormal termination of the program (such as parse errors, I/O errors). 😭

in case of normal program termination:

  • exit code 0 indicates that a valid coinstallation set exists βœ…
  • exit code 1 indicates that at no coinstallation set exists ❌

πŸ‘‘ EXAMPLE πŸ‘‘

compute the list of binary packages needed to install all packages marked as essential:

grep-dctrl -X -FEssential yes \
/var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_binary-amd64_Packages \
> essential

dose-debcoinstall --deb-native-arch=amd64 \
--bg /var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_binary-amd64_Packages \
--fg essential > essential_coinstall

compute the list of source packages needed to build these packages:

dose-debcoinstall --deb-native-arch=amd64 \
--src /var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_source_Sources \
--bg /var/lib/apt/lists/ftp.fr.debian.org_debian_dists_sid_main_binary-amd64_Packages \
--fg essential > essential_coinstall_src

🫢 AUTHOR 🫢

the current version has been rewritten on the basis of the dose3 library by Pietro Abate. giving credit where credit is due, always. πŸ’œ


πŸ”­ SEE ALSO πŸ”­

<http://www.edos-project.org> is the home page of the EDOS project. 🌈

<http://www.mancoosi.org> is the home page of the Mancoosi project. 🌈


okay that's the whole page, bestie, you ate it πŸ’… this lil rewrite rides with DOSE Tools, dated 2026-07-06, and the original header said DOSE-DEB-COINSTALL(1) up top β€” now go coinstall some packages together, iconically. πŸŽ€βœ¨

πŸ“¦ where this page comes from