.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "dpkg-split 1" .TH dpkg-split 1 2024-01-19 1.22.3 "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME dpkg\-split \- Debian package archive split/join tool .SH SYNOPSIS .IX Header "SYNOPSIS" \&\fBdpkg-split\fR [\fIoption\fR...] \fIcommand\fR .SH DESCRIPTION .IX Header "DESCRIPTION" \&\fBdpkg-split\fR 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. .PP It can be operated manually using the \&\fB\-\-split\fR, \fB\-\-join\fR and \fB\-\-info\fR options. .PP It also has an automatic mode, invoked using the \&\fB\-\-auto\fR 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 \&\fB\-\-listq\fR and \fB\-\-discard\fR options allow the management of the queue. .PP All splitting, joining and queueing operations produce informative messages on standard output; these may safely be ignored. .SH COMMANDS .IX Header "COMMANDS" .IP "\fB\-s\fR, \fB\-\-split\fR \fIcomplete-archive\fR [\fIprefix\fR]" 4 .IX Item "-s, --split complete-archive [prefix]" Splits a single Debian binary package into several parts. .Sp The parts are named \&\fIprefix\fR\fB.\fR\fIN\fR\fBof\fR\fIM\fR\fB.deb\fR where \&\fIN\fR is the part number, starting at 1, and \&\fIM\fR is the total number of parts (both in decimal). .Sp If no \&\fIprefix\fR is supplied then the \&\fIcomplete-archive\fR filename is taken, including directory, with any trailing \&\fB.deb\fR removed. .IP "\fB\-j\fR, \fB\-\-join\fR \fIpart\fR..." 4 .IX Item "-j, --join part..." Joins the parts of a package file together, reassembling the original file as it was before it was split. .Sp 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. .Sp 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 \&\fBdpkg-split \-\-split\fR. .Sp The parts' filenames are not significant for the reassembly process. .Sp By default the output file is called \&\fIpackage\fR\fB_\fR\fIversion\fR\fB_\fR\fIarch\fR\fB.deb\fR. .IP "\fB\-I\fR, \fB\-\-info\fR \fIpart\fR..." 4 .IX Item "-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). .IP "\fB\-a\fR, \fB\-\-auto \-o\fR \fIcomplete-output\fR \fIpart\fR" 4 .IX Item "-a, --auto -o complete-output part" Automatically queue parts and reassemble a package if possible. .Sp The \&\fIpart\fR specified is examined, and compared with other parts of the same package (if any) in the queue of packages file parts. .Sp If all parts of the package file of which \&\fIpart\fR is a part are available then the package is reassembled and written to \&\fIcomplete-output\fR (which should not usually already exist, though this is not an error). .Sp If not then the \&\fIpart\fR is copied into the queue and \&\fIcomplete-output\fR is not created. .Sp If \&\fIpart\fR is not a split binary package part then \&\fBdpkg-split\fR will exit with status \fB1\fR; if some other trouble occurs then it will exit with status \fB2\fR. .Sp The \&\fB\-\-output\fR or \fB\-o\fR option must be supplied when using \&\fB\-\-auto\fR. (If this were not mandatory the calling program would not know what output file to expect.) .IP "\fB\-l\fR, \fB\-\-listq\fR" 4 .IX Item "-l, --listq" Lists the contents of the queue of packages to be reassembled. .Sp 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. .IP "\fB\-d\fR, \fB\-\-discard\fR [\fIpackage\fR...]" 4 .IX Item "-d, --discard [package...]" This discards parts from the queue of those waiting for the remaining parts of their packages. .Sp If no \&\fIpackage\fR is specified then the queue is cleared completely; if any are specified then only parts of the relevant package(s) are deleted. .IP "\fB\-?\fR, \fB\-\-help\fR" 4 .IX Item "-?, --help" Show the usage message and exit. .IP \fB\-\-version\fR 4 .IX Item "--version" Show the version and exit. .SH OPTIONS .IX Header "OPTIONS" .IP "\fB\-\-depotdir\fR \fIdirectory\fR" 4 .IX Item "--depotdir directory" Specifies an alternative directory for the queue of parts awaiting automatic reassembly. The default is \&\fB/var/lib/dpkg/parts\fR. .IP "\fB\-\-admindir\fR \fIdirectory\fR" 4 .IX Item "--admindir directory" Set the administrative directory to \fIdirectory\fR (since dpkg 1.21.10). This is where the \fIstatoverride\fR file is stored. Defaults to \(Fo\fI/var/lib/dpkg\fR\(Fc if \fBDPKG_ADMINDIR\fR has not been set. .IP "\fB\-\-root\fR \fIdirectory\fR" 4 .IX Item "--root directory" Set the root directory to \fBdirectory\fR (since dpkg 1.21.10), which sets the installation directory to \(Fo\fIdirectory\fR\(Fc and the administrative directory to \(Fo\fIdirectory\fR\fB/var/lib/dpkg\fR\(Fc if \fBDPKG_ROOT\fR has not been set. .IP "\fB\-S\fR, \fB\-\-partsize\fR \fIkibibytes\fR" 4 .IX Item "-S, --partsize kibibytes" Specifies the maximum part size when splitting, in kibibytes (1024 bytes). The default is 450 KiB. .IP "\fB\-o\fR, \fB\-\-output\fR \fIcomplete-output\fR" 4 .IX Item "-o, --output complete-output" Specifies the output file name for a reassembly. .Sp This overrides the default for a manual reassembly (\fB\-\-join\fR) and is mandatory for an automatic queue-or-reassemble (\fB\-\-auto\fR). .IP "\fB\-Q\fR, \fB\-\-npquiet\fR" 4 .IX Item "-Q, --npquiet" When doing automatic queue-or-reassembly \&\fBdpkg-split\fR usually prints a message if it is given a \&\fIpart\fR that is not a binary package part. This option suppresses this message, to allow programs such as \&\fBdpkg\fR to cope with both split and unsplit packages without producing spurious messages. .IP \fB\-\-msdos\fR 4 .IX Item "--msdos" Forces the output filenames generated by \&\fB\-\-split\fR to be MSDOS-compatible. .Sp 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 \&\fBx\fR's and all other characters are discarded. .Sp The result is then truncated as much as is necessary, and filenames of the form \&\fIprefixN\fR\fBof\fR\fIM\fR\fB.deb\fR are generated. .SH "EXIT STATUS" .IX Header "EXIT STATUS" .IP \fB0\fR 4 .IX Item "0" The requested split, merge, or other command succeeded. \&\fB\-\-info\fR commands count as successful even if the files are not binary package parts. .IP \fB1\fR 4 .IX Item "1" Only occurs with \&\fB\-\-auto\fR and indicates that the \&\fIpart\fR file was not a binary package part. .IP \fB2\fR 4 .IX Item "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. .SH ENVIRONMENT .IX Header "ENVIRONMENT" .IP \fBDPKG_ROOT\fR 4 .IX Item "DPKG_ROOT" If set and \fB\-\-root\fR option has not been specified, it will be used as the filesystem root directory (since dpkg 1.21.10). .IP \fBDPKG_ADMINDIR\fR 4 .IX Item "DPKG_ADMINDIR" If set and the \fB\-\-admindir\fR or \fB\-\-root\fR options have not been specified, it will be used as the \fBdpkg\fR data directory (since dpkg 1.21.10). .IP \fBDPKG_DEBUG\fR 4 .IX Item "DPKG_DEBUG" Sets the debug mask (since dpkg 1.21.10) from an octal value. The currently accepted flags are described in the \fBdpkg \-\-debug\fR option, but not all these flags might have an effect on this program. .IP \fBDPKG_COLORS\fR 4 .IX Item "DPKG_COLORS" Sets the color mode (since dpkg 1.18.5). The currently accepted values are: \fBauto\fR (default), \fBalways\fR and \&\fBnever\fR. .IP \fBSOURCE_DATE_EPOCH\fR 4 .IX Item "SOURCE_DATE_EPOCH" If set, it will be used as the timestamp (as seconds since the epoch) in the \fBdeb\-split\fR\|(5)'s \fBar\fR\|(5) container. .SH FILES .IX Header "FILES" .IP \fI/var/lib/dpkg/parts\fR 4 .IX Item "/var/lib/dpkg/parts" The default queue directory for part files awaiting automatic reassembly. .Sp The filenames used in this directory are in a format internal to \&\fBdpkg-split\fR and are unlikely to be useful to other programs, and in any case the filename format should not be relied upon. .SH SECURITY .IX Header "SECURITY" 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. .PP 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. .PP Splitting package archives should only be performed over trusted data. .SH BUGS .IX Header "BUGS" Full details of the packages in the queue are impossible to get without digging into the queue directory yourself. .PP There is no easy way to test whether a file that may be a binary package part is one. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBdeb\fR\|(5), \&\fBdeb\-control\fR\|(5), \&\fBdpkg\-deb\fR\|(1), \&\fBdpkg\fR\|(1).