dpkg-split - Debian package archive split/join tool
splits Debian binary package files into smaller parts and
reassembles them again, to support the storage of large package files on small
media such as floppy disks.
It can be operated manually using the --split
It also has an automatic mode, invoked using the --auto
option, where it
maintains a queue of parts seen but not yet reassembled and reassembles a
package file when it has seen all of its parts. The --listq
options allow the management of the queue.
All splitting, joining and queueing operations produce informative messages on
standard output; these may safely be ignored.
- -s, --split complete-archive
- Splits a single Debian binary package into several parts.
The parts are named
prefix.NofM.deb where N
is the part number, starting at 1, and M is the total number of
parts (both in decimal).
If no prefix is supplied then the complete-archive filename is
taken, including directory, with any trailing .deb removed.
- -j, --join part...
- Joins the parts of a package file together, reassembling
the original file as it was before it was split.
The part files given as arguments must be all the parts of exactly the same
original binary file. Each part must occur exactly once in the argument
list, though the parts to not need to be listed in order.
The parts must of course all have been generated with the same part size
specified at split time, which means that they must usually have been
generated by the same invocation of dpkg-split --split.
The parts' filenames are not significant for the reassembly process.
By default the output file is called
- -I, --info part...
- Prints information, in a human-readable format, about the
part file(s) specified. Arguments which are not binary package parts
produce a message saying so instead (but still on standard output).
- -a, --auto -o complete-output
- Automatically queue parts and reassemble a package if
The part specified is examined, and compared with other parts of the
same package (if any) in the queue of packages file parts.
If all parts of the package file of which part is a part are
available then the package is reassembled and written to
complete-output (which should not usually already exist, though
this is not an error).
If not then the part is copied into the queue and
complete-output is not created.
If part is not a split binary package part then dpkg-split
will exit with status 1; if some other trouble occurs then it will
exit with status 2.
The --output or -o option must be supplied when using
--auto. (If this were not mandatory the calling program would not
know what output file to expect.)
- -l, --listq
- Lists the contents of the queue of packages to be
For each package file of which parts are in the queue the output gives the
name of the package, the parts in the queue, and the total number of bytes
stored in the queue.
- -d, --discard [package...]
- This discards parts from the queue of those waiting for the
remaining parts of their packages.
If no package is specified then the queue is cleared completely; if
any are specified then only parts of the relevant package(s) are
- -?, --help
- Show the usage message and exit.
- Show the version and exit.
- --depotdir directory
- Specifies an alternative directory for the queue of parts
awaiting automatic reassembly. The default is /var/lib/dpkg.
- -S, --partsize kibibytes
- Specifies the maximum part size when splitting, in
kibibytes (1024 bytes). The default is 450 KiB.
- -o, --output complete-output
- Specifies the output file name for a reassembly.
This overrides the default for a manual reassembly (--join) and is
mandatory for an automatic queue-or-reassemble (--auto).
- -Q, --npquiet
- When doing automatic queue-or-reassembly dpkg-split
usually prints a message if it is given a part that is not a binary
package part. This option suppresses this message, to allow programs such
as dpkg to cope with both split and unsplit packages without
producing spurious messages.
- Forces the output filenames generated by --split to
This mangles the prefix - either the default derived from the input filename
or the one supplied as an argument: alphanumerics are lowercased, plus
signs are replaced by x's and all other characters are discarded.
The result is then truncated as much as is necessary, and filenames of the
form prefixNofM.deb are generated.
- The requested split, merge, or other command succeeded.
--info commands count as successful even if the files are not
binary package parts.
- Only occurs with --auto and indicates that the
part file was not a binary package part.
- Some kind of trouble happened, such as a system call
failure, a file that looked like a package part file but was corrupted, a
usage error or some other problem.
Full details of the packages in the queue are impossible to get without digging
into the queue directory yourself.
There is no easy way to test whether a file that may be a binary package part is
- The default queue directory for part files awaiting
The filenames used in this directory are in a format internal to
dpkg-split and are unlikely to be useful to other programs, and in
any case the filename format should not be relied upon.