dpkg-split
Split large Debian packages into smaller files
SYNOPSIS
dpkg-split [option...] command
dpkg-split --split [option...] binary-package [output-part-name...]
dpkg-split --merge [option...] input-part...
PARAMETERS
--split
Specifies the command to split a binary package into multiple parts.
--merge
Specifies the command to merge parts of a binary package back into a complete binary package.
-S size, --part-size size
Sets the maximum size for each output part. The size can be specified with optional suffixes like 'K', 'M', or 'G' for kilobytes, megabytes, or gigabytes, respectively.
-o directory, --output directory
Defines the output directory where the split parts will be saved or where the merged .deb file will be created.
-a, --auto
When splitting, automatically determines the base name for the output parts. When merging, automatically finds all necessary parts based on the metadata in the .info file.
-b name, --base-name name
Specifies the base name to be used for the generated split parts. This option overrides the default base name derived from the input package.
--msdos
Uses MS-DOS compatible file naming conventions for the split parts and info file, useful when transferring to or from DOS/Windows systems.
--large-file
Permits handling of files larger than 2GB. This option is largely deprecated as modern systems typically support large files by default.
--info-file file
Explicitly specifies the path to the .info file for merging. Usually, this is implicitly found when using --auto or providing part names.
--help
Displays a help message and exits.
--version
Shows the program's version information and exits.
DESCRIPTION
dpkg-split is a utility included with the dpkg package management system, primarily used in Debian-based Linux distributions. Its core function is to divide large Debian binary package files (with the .deb extension) into smaller, more manageable parts, and conversely, to reassemble these parts back into the original .deb file.
This command is particularly useful in scenarios where the original package file is too large to be easily transferred across networks with bandwidth limitations, stored on certain types of removable media (historically, floppy disks), or when dealing with file system limitations on size. When splitting, dpkg-split intelligently names the output parts (e.g., package.deb.1of3, package.deb.2of3) and generates a crucial .info file that contains metadata necessary for successful reconstruction. The process is designed to maintain the integrity of the package across its split parts. For merging, users provide the split parts and the .info file, allowing dpkg-split to meticulously reconstruct the complete .deb file. It's a specialized tool for .deb archives, not a general-purpose file splitter.
CAVEATS
- dpkg-split is a specialized tool for Debian .deb packages. It is not a general-purpose file splitting utility; for splitting arbitrary files, consider using the split(1) and cat(1) commands.
- Both splitting and merging operations require sufficient free disk space, as they temporarily duplicate the package data during processing.
- The .info file generated during the splitting phase is critical for successful merging. Loss or corruption of this file will likely prevent proper reassembly of the package.
- When splitting, carefully choose the part-size to ensure the resulting segments fit the target storage medium or meet network transfer requirements.
HISTORY
dpkg-split is an integral component of the dpkg suite, the foundational package management system for Debian and its derivatives. Its development emerged from the practical challenges of distributing large software packages in earlier computing eras, particularly when storage media like floppy disks imposed severe size constraints. The utility's design emphasizes robust package integrity across multiple physical parts, a critical requirement for a reliable package management system. While the original drivers for its use (e.g., floppy disk distribution) have largely faded, dpkg-split remains valuable for specific modern scenarios, such as transferring exceptionally large packages over unreliable networks, or accommodating storage systems with restrictive file size limitations.