1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339
|
# dpkg manual page - dpkg-split(1)
#
# Copyright © 1995-1996 Ian Jackson <ijackson@chiark.greenend.org.uk>
# Copyright © 2011 Guillem Jover <guillem@debian.org>
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
=encoding utf8
=head1 NAME
dpkg-split - Debian package archive split/join tool
=head1 SYNOPSIS
B<dpkg-split>
[I<option>...] I<command>
=head1 DESCRIPTION
B<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
B<--split>, B<--join> and B<--info>
options.
It also has an automatic mode, invoked using the
B<--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
B<--listq> and B<--discard>
options allow the management of the queue.
All splitting, joining and queueing operations produce informative
messages on standard output; these may safely be ignored.
=head1 COMMANDS
=over
=item B<-s>, B<--split> I<complete-archive> [I<prefix>]
Splits a single Debian binary package into several parts.
The parts are named
I<prefix>B<.>I<N>B<of>I<M>B<.deb>
where
I<N>
is the part number, starting at 1, and
I<M>
is the total number of parts (both in decimal).
If no
I<prefix>
is supplied then the
I<complete-archive>
filename is taken, including directory, with any trailing
B<.deb>
removed.
=item B<-j>, B<--join> I<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
B<dpkg-split --split>.
The parts' filenames are not significant for the reassembly process.
By default the output file is called
I<package>B<_>I<version>B<_>I<arch>B<.deb>.
=item B<-I>, B<--info> I<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).
=item B<-a>, B<--auto -o> I<complete-output> I<part>
Automatically queue parts and reassemble a package if possible.
The
I<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
I<part>
is a part are available then the package is reassembled and written to
I<complete-output>
(which should not usually already exist, though this is not an
error).
If not then the
I<part>
is copied into the queue and
I<complete-output>
is not created.
If
I<part>
is not a split binary package part then
B<dpkg-split>
will exit with status B<1>; if some other trouble occurs then it will
exit with status B<2>.
The
B<--output> or B<-o>
option must be supplied when using
B<--auto>.
(If this were not mandatory the calling program would not know what
output file to expect.)
=item B<-l>, B<--listq>
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.
=item B<-d>, B<--discard> [I<package>...]
This discards parts from the queue of those waiting for the remaining
parts of their packages.
If no
I<package>
is specified then the queue is cleared completely; if any are
specified then only parts of the relevant package(s) are deleted.
=item B<-?>, B<--help>
Show the usage message and exit.
=item B<--version>
Show the version and exit.
=back
=head1 OPTIONS
=over
=item B<--depotdir> I<directory>
Specifies an alternative directory for the queue of parts awaiting
automatic reassembly.
The default is
B<%ADMINDIR%/parts>.
=item B<--admindir> I<directory>
Set the administrative directory to I<directory> (since dpkg 1.21.10).
This is where the I<statoverride> file is stored.
Defaults to «I<%ADMINDIR%>» if B<DPKG_ADMINDIR> has not been set.
=item B<--root> I<directory>
Set the root directory to B<directory> (since dpkg 1.21.10),
which sets the installation directory to «I<directory>» and
the administrative directory to «I<directory>B<%ADMINDIR%>»
if B<DPKG_ROOT> has not been set.
=item B<-S>, B<--partsize> I<kibibytes>
Specifies the maximum part size when splitting, in kibibytes (1024
bytes).
The default is 450 KiB.
=item B<-o>, B<--output> I<complete-output>
Specifies the output file name for a reassembly.
This overrides the default for a manual reassembly
(B<--join>)
and is mandatory for an automatic queue-or-reassemble
(B<--auto>).
=item B<-Q>, B<--npquiet>
When doing automatic queue-or-reassembly
B<dpkg-split>
usually prints a message if it is given a
I<part>
that is not a binary package part.
This option suppresses this
message, to allow programs such as
B<dpkg>
to cope with both split and unsplit packages without producing
spurious messages.
=item B<--msdos>
Obsolete option without effect (since dpkg 1.23.0).
=back
=head1 EXIT STATUS
=over
=item B<0>
The requested split, merge, or other command succeeded.
B<--info>
commands count as successful even if the files are not binary package
parts.
=item B<1>
Only occurs with
B<--auto>
and indicates that the
I<part>
file was not a binary package part.
=item B<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.
=back
=head1 ENVIRONMENT
=over
=item B<DPKG_ROOT>
If set and B<--root> option has not been specified,
it will be used as the filesystem root directory (since dpkg 1.21.10).
=item B<DPKG_ADMINDIR>
If set and the B<--admindir> or B<--root> options have not been specified,
it will be used as the B<dpkg> data directory (since dpkg 1.21.10).
=item B<DPKG_DEBUG>
Sets the debug mask (since dpkg 1.21.10) from an octal value.
The currently accepted flags are described in the B<dpkg --debug> option,
but not all these flags might have an effect on this program.
=item B<DPKG_COLORS>
Sets the color mode (since dpkg 1.18.5).
The currently accepted values are: B<auto> (default), B<always> and
B<never>.
=item B<DPKG_NLS>
If set, it will be used to decide whether to activate Native Language Support,
also known as internationalization (or i18n) support (since dpkg 1.22.7).
The accepted values are: B<0> and B<1> (default).
=item B<SOURCE_DATE_EPOCH>
If set, it will be used as the timestamp (as seconds since the epoch) in
the L<deb-split(5)>'s L<ar(5)> container.
Since dpkg 1.18.11.
=back
=head1 FILES
=over
=item I<%ADMINDIR%/parts>
The default queue directory for part files awaiting automatic
reassembly.
The filenames used in this directory are in a format internal to
B<dpkg-split>
and are unlikely to be useful to other programs, and in any case the
filename format should not be relied upon.
=back
=head1 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.
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 data.
=head1 BUGS
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.
=head1 SEE ALSO
L<deb(5)>,
L<deb-control(5)>,
L<dpkg-deb(1)>,
L<dpkg(1)>.
|