dpkg-split(1) — Linux manual page


dpkg-split(1)                  dpkg suite                  dpkg-split(1)

NAME         top

       dpkg-split - Debian package archive split/join tool

SYNOPSIS         top

       dpkg-split [option...] command

DESCRIPTION         top

       dpkg-split 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 the

       All splitting, joining and queueing operations produce
       informative messages on standard output; these may safely be

COMMANDS         top

       -s, --split complete-archive [prefix]
           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

       -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

           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 part
           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

           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 deleted.

       -?, --help
           Show the usage message and exit.

           Show the version and exit.

OPTIONS         top

       --depotdir directory
           Specifies an alternative directory for the queue of parts
           awaiting automatic reassembly. The default is

       --admindir directory
           Set the administrative directory to directory (since dpkg
           1.21.10).  This is where the statoverride file is stored.
           Defaults to «/usr/local/var/lib/dpkg» if DPKG_ADMINDIR has
           not been set.

       --root directory
           Set the root directory to directory (since dpkg 1.21.10),
           which sets the installation directory to «directory» and the
           administrative directory to
           «directory/usr/local/var/lib/dpkg» if DPKG_ROOT has not been

       -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

       -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 be MSDOS-

           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.

EXIT STATUS         top

       0   The requested split, merge, or other command succeeded.
           --info commands count as successful even if the files are not
           binary package parts.

       1   Only occurs with --auto and indicates that the part file was
           not a binary package part.

       2   Fatal or unrecoverable error due to invalid command-line
           usage, a file that looked like a package part file but was
           corrupted, or interactions with the system, such as accesses
           to the database, memory allocations, etc.

ENVIRONMENT         top

           If set and --root option has not been specified, it will be
           used as the filesystem root directory (since dpkg 1.21.10).

           If set and the --admindir or --root options have not been
           specified, it will be used as the dpkg data directory (since
           dpkg 1.21.10).

           Sets the debug mask (since dpkg 1.21.10) from an octal value.
           The currently accepted flags are described in the dpkg
           --debug option, but not all these flags might have an effect
           on this program.

           Sets the color mode (since dpkg 1.18.5).  The currently
           accepted values are: auto (default), always and never.

           If set, it will be used as the timestamp (as seconds since
           the epoch) in the deb-split(5)'s ar(5) container.

FILES         top

           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
           relied upon.

SECURITY         top

       Examining or joining untrusted split package archives should be
       considered a security boundary, and any breakage of that boundary
       stemming from these operations should be considered a security
       vulnerability.  Performing these operations over untrusted data
       as root is strongly discouraged.

       Auto-accumulating and discarding split package parts are
       considered privileged operations that might allow root
       escalation.  These operations must never be delegated to an
       untrusted user or be done on untrusted packages, as that might
       allow root access to the system.

       Splitting package archives should only be performed over trusted

BUGS         top

       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.

SEE ALSO         top

       deb(5), deb-control(5), dpkg-deb(1), dpkg(1).

COLOPHON         top

       This page is part of the dpkg (Debian Package Manager) project.
       Information about the project can be found at 
       ⟨https://wiki.debian.org/Teams/Dpkg/⟩.  If you have a bug report
       for this manual page, see
       ⟨http://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dpkg⟩.  This
       page was obtained from the project's upstream Git repository ⟨git
       clone https://git.dpkg.org/git/dpkg/dpkg.git⟩ on 2023-12-22.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2023-12-18.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there
       is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

1.22.0-52-g1af0                2023-08-30                  dpkg-split(1)

Pages that refer to this page: dpkg(1)deb-split(5)