deb-split(5)

πŸ’… deb-split(5) β€” the group chat intro

okay so first things first, bestie: this is the manual page for deb-split, and it lives in the dpkg suite (that's the whole Debian packaging friend group, iykyk). It's a section 5 page, so it's all about file formats, not commands β€” we're describing what a thing looks like on the inside, not telling you what to type. πŸŽ€


✨ NAME ✨

deb-split β€” the Debian multi-part binary package format. yes, "multi-part", like when a package is so big it has to be split into little pieces. she's giving main character with a suitcase full of outfits. 🧳


πŸ¦‹ SYNOPSIS πŸ¦‹

filename.deb

that's it. that's the whole vibe. a filename ending in .deb. slay. ✨


🌸 DESCRIPTION 🌸

so the multi-part .deb format exists for one iconic reason: it splits big packages into smaller pieces so they're easier to move around on small media. think of it like packing your giant wardrobe into multiple cute little bags instead of one impossible suitcase. πŸ’–


πŸ”₯ FORMAT πŸ”₯

the file is an ar archive, and its magic value is:

!<arch>\n

and yeah β€” the file names inside might contain a trailing slash (this has been a thing since dpkg 1.15.6, so it's not new, bestie, it's established). 🫢

the ar archive is made of multiple members, and they go in a specific order. not a vibe-based order. a specific one. πŸ‘‘

πŸŽ€ debian-split πŸŽ€

this is the first required member, and it contains a series of lines separated by newlines. currently there are eight lines present:

  1. the format version number β€” 2.1 at the time this manual page was written.
  2. the package name.
  3. the package version.
  4. the md5sum of the package.
  5. the total size of the package.
  6. the maximum part size.
  7. the current part number, followed by a slash and the total amount of parts (as in 1/10). it's giving "part 1 of 10, bestie". πŸ“
  8. the package architecture. (supported since dpkg 1.16.1 ✨)
so here's the respectful-reader behaviour, and it matters: programs that read multi-part archives should be prepared for the minor format version number to be increased and for additional lines to be present β€” and they should ignore those extra bits if that happens. don't panic, don't crash, just vibe past them. πŸ¦‹

now for the serious part, no cap:

if the major format version number has changed, an incompatible change has been made and the program should stop. periodt. πŸ›‘ if it has not changed, then the program should be able to safely continue β€” unless it encounters an unexpected member in the archive (except at the end), as described below.

🌈 data.N 🌈

the second and last required member, where N denotes the part number. it contains the raw part data. that's the actual payload, the realness, the contents of the cute little bag. πŸ’œ


⭐ the ordering rules ⭐

these members must occur in this exact order. current implementations should ignore any additional members after data.N. further members may be defined in the future, and (if possible) will be placed after these two. so like... leave room at the end of the party for future guests. πŸŽ€


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page, bestie β€” you ate that πŸ’…

this iconic little writeup came from dpkg suite version 1.23.11-dirty, dated 2026-09-09. go forth and split responsibly. 🌸✨🫢

πŸ“¦ where this page comes from