Dpkg(3perl)

πŸ’… Dpkg(3perl) β€” the libdpkg-perl era

okay so bestie, you're looking at Dpkg(3perl) β€” the actual manpage from the libdpkg-perl corner of the universe. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

Dpkg β€” the module that's literally just a bag of core variables, but make it iconic.


🌸 DESCRIPTION 🌸

So the Dpkg module hands you a whole little set of variables carrying info about this system installation. like, your system. right now. no cap.

It's also the front door β€” the entry point β€” to the entire Dpkg module hierarchy. main character energy, honestly. πŸ‘‘


πŸŽ€ VARIABLES πŸŽ€

Every single one, no skips, periodt:

  • $Dpkg::PROGNAME β€” holds the name of the program you're currently running.
  • $Dpkg::PROGVERSION β€” holds the version of the whole dpkg suite.
  • $Dpkg::PROGMAKE β€” holds the name of the system's GNU make program.
  • $Dpkg::PROGTAR β€” holds the name of the system's GNU tar program.
  • $Dpkg::PROGPATCH β€” holds the name of the system's GNU patch program (or another implementation that's directory-traversal resistant, iykyk πŸ›‘οΈ).
  • $Dpkg::CONFDIR β€” holds the path to the dpkg system configuration directory.
  • $Dpkg::ADMINDIR β€” holds the path to the dpkg database directory.
  • $Dpkg::LIBDIR β€” holds the path to the dpkg methods and plugins directory.
  • $Dpkg::DATADIR β€” holds the path to the dpkg architecture tables directory.

like, that's the whole vibe. paths and program names. very demure, very mindful. πŸ’œ


πŸ¦‹ MODULES πŸ¦‹

here's the list of public modules chilling inside the Dpkg hierarchy. two rules, bestie, listen up:

  • only modules with versions 1.00 or higher count,
  • and only the interfaces documented in their POD are considered public.

everything else? not invited to the party. πŸ™ˆ

  • Dpkg β€” this module right here. core variables. hi.
  • Dpkg::Arch β€” architecture handling functions.
  • Dpkg::BuildFlags β€” set, modify and query compilation build flags.
  • Dpkg::BuildInfo β€” build information functions.
  • Dpkg::BuildOptions β€” parse and manipulate DEB_BUILD_OPTIONS.
  • Dpkg::BuildProfiles β€” parse and manipulate build profiles.
  • Dpkg::Changelog β€” parse changelogs.
  • Dpkg::Changelog::Entry β€” represents a changelog entry.
  • Dpkg::Changelog::Parse β€” generic changelog parser for dpkg-parsechangelog.
  • Dpkg::Checksums β€” generate and parse checksums.
  • Dpkg::Compression β€” simple database of available compression methods.
  • Dpkg::Compression::FileHandle β€” transparently compress and decompress files.
  • Dpkg::Compression::Process β€” wrapper around compression tools.
  • Dpkg::Conf β€” parse dpkg configuration files.
  • Dpkg::Control β€” parse and manipulate Debian control information (.dsc, .changes, Packages/Sources entries, etc.).
  • Dpkg::Control::Changelog β€” represent fields output by dpkg-parsechangelog.
  • Dpkg::Control::Fields β€” manage (list of known) control fields.
  • Dpkg::Control::Hash β€” parse and manipulate a stanza of deb822 fields.
  • Dpkg::Control::Info β€” parse files like debian/control.
  • Dpkg::Control::Tests β€” parse files like debian/tests/control.
  • Dpkg::Control::Tests::Entry β€” represents a debian/tests/control stanza.
  • Dpkg::Deps β€” parse and manipulate dependencies.
  • Dpkg::Deps::Simple β€” represents a single dependency statement.
  • Dpkg::Deps::Multiple β€” base module to represent multiple dependencies.
  • Dpkg::Deps::Union β€” list of unrelated dependencies.
  • Dpkg::Deps::AND β€” list of AND dependencies.
  • Dpkg::Deps::OR β€” list of OR dependencies.
  • Dpkg::Deps::KnownFacts β€” list of installed and virtual packages.
  • Dpkg::Exit β€” push, pop and run exit handlers.
  • Dpkg::Gettext β€” wrapper around Locale::gettext.
  • Dpkg::IPC β€” spawn sub-processes and feed/retrieve data.
  • Dpkg::Index β€” collections of Dpkg::Control (Packages/Sources files for example).
  • Dpkg::Interface::Storable β€” base object serializer.
  • Dpkg::Path β€” common path handling functions.
  • Dpkg::Source::Format β€” parse and manipulate debian/source/format files.
  • Dpkg::Source::Package β€” extract Debian source packages.
  • Dpkg::Substvars β€” substitute variables in strings.
  • Dpkg::Vendor β€” identify current distribution vendor.
  • Dpkg::Version β€” parse and manipulate Debian package versions.

ate. every single one of them. πŸ”₯


πŸ’€ CHANGES πŸ’€

the lore. the timeline. let's go. ⭐

Version 2.00 (dpkg 1.20.0)

  • removed variables: $version, $progname, $admindir, $dpkglibdir and $pkgdatadir. gone. not coming back. 😭

Version 1.03 (dpkg 1.18.24)

  • new variable: $PROGPATCH.

Version 1.02 (dpkg 1.18.11)

  • new variable: $PROGTAR, $PROGMAKE.

Version 1.01 (dpkg 1.17.0)

  • new variables: $PROGNAME, $PROGVERSION, $CONFDIR, $ADMINDIR, $LIBDIR and $DATADIR.
  • deprecated variables: $version, $admindir, $dpkglibdir and $pkgdatadir.
lowkey foreshadowing, bestie β€” see Version 2.00 above for how that deprecation arc ended. πŸ’€

Version 1.00 (dpkg 1.15.6)

  • marked the module as public. the debut. the glow-up. πŸ‘‘

🌈 LICENSE 🌈

okay so licensing here isn't one-size-fits-all β€” you gotta see the header comment on each module for their particular license. check before you copy, fr fr. 🫢


and that's the whole page! 🧚 this little gem comes from the libdpkg-perl world, version 1.23.11-dirty, dated 2026-09-09 β€” mwah, slay, bye bestie! πŸ’–βœ¨

πŸ“¦ where this page comes from