Debian package archive split/join tool
see also :
dpkg-deb - dpkg
add an example, a script, a trick and tips
echo -n '
Insert a disk containing *.deb files, or type q
to quit. '
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,
--join and --info
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 and
--discard options allow the management of
joining and queueing operations produce informative messages
on standard output; these may safely be ignored.
Specifies an alternative
directory for the queue of parts awaiting automatic
reassembly. The default is /var/lib/dpkg.
Specifies the maximum part size
when splitting, in kibibytes (1024 bytes). The default is
Specifies the output file name
for a reassembly.
the default for a manual reassembly
(--join) and is mandatory for an
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 be
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
-s, --split complete-archive [prefix]
Splits a single Debian binary package into several parts.
The parts are named
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
-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
The parts’ filenames are not significant for the reassembly
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
-a, --auto -o complete-output part
Automatically queue parts and reassemble a package if possible.
The part specified is examined, and compared with other
parts of the same package (if any) in the queue of packages file
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.)
Lists the contents of the queue of packages to be reassembled.
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 deleted.
Show the usage message and exit.
Show the version and exit.
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.
The default queue directory for part files awaiting automatic
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
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 one.
deb-control, dpkg -deb"> dpkg-deb ,