LinuxCommandLibrary

dpkg-split

Split large Debian packages into smaller files

SYNOPSIS

dpkg-split [option...] {--split[=size-in-kb]|--join|--test|--listloc=filename} file...

PARAMETERS

-a, --auto
    Automatically determine optimal split size.

-L, --listloc=filename
    List parts comprising the multi-part archive.

-o, --output=directory
    Place output files in specified directory.

-s, --split[=size-in-kb]
    Split archive into parts of given size (kB); interactive if omitted.

--help, -?, -h
    Display usage summary.

--join file...
    Join listed parts into single archive (file.0).

--multiarch
    Allow processing multi-arch packages.

--test file...
    Verify parts join correctly without creating output.

--version
    Show program version.

DESCRIPTION

dpkg-split is a utility from the Debian dpkg suite designed to handle large .deb package files by splitting them into smaller, transportable parts and reassembling them later. This was originally essential for distributing packages via email or floppy disks when file size limits were common.

Key functions include splitting a single archive into numbered parts (e.g., package.deb.1, package.deb.2) with embedded checksums for integrity, joining a complete set of parts back into the original .deb, testing parts for joinability without output creation, and listing components of a multi-part archive. Parts follow the deb-split(5) format, ensuring reliable reconstruction.

Usage has declined with modern bandwidth, but it remains useful for air-gapped systems, legacy compatibility, or constrained environments. Output defaults to the current directory unless specified, and multi-arch support was added later.

CAVEATS

Split size omitted triggers interactive prompt; join requires all parts in sequence. Not suitable for signed packages.

EXAMPLE: SPLIT

dpkg-split --output=/tmp --split=10240 large.deb
Splits into 10MB parts in /tmp.

EXAMPLE: JOIN

dpkg-split --output=/tmp --join part.deb.1 part.deb.2 part.deb.3
Reassembles into part.deb.0.

HISTORY

Introduced in early dpkg (circa 1994, version 1.1.x) for email/floppy package transport; enhanced with auto-split (1.15.7) and multiarch (1.17.14).

SEE ALSO

dpkg(1), dpkg-deb(1), deb-split(5)

Copied to clipboard