Penguin
Annotated edit history of dpkg(8) version 4, including all changes. View license author blame.
Rev Author # Line
1 perry 1 DPKG
2 !!!DPKG
3 NAME
4 SYNOPSIS
5 WARNING
6 DESCRIPTION
7 INFORMATION ABOUT PACKAGES
8 ACTIONS
9 OPTIONS
10 FILES
11 ENVIRONMENT VARIABLES
12 EXAMPLES
13 SEE ALSO
14 BUGS
15 AUTHORS
16 ----
17 !!NAME
18
19
20 dpkg - a medium-level package manager for Debian
21 !!SYNOPSIS
22
23
24 __dpkg__ [[''options''] ''action''
25 !!WARNING
26
27
28 This manual is intended for users wishing to understand
29 __dpkg__'s command line options and package states in
30 more detail than that provided by __dpkg
31 --help__.
32
33
34 It should ''not'' be used by package maintainers wishing
35 to understand how __dpkg__ will install their packages.
36 The descriptions of what __dpkg__ does when installing
37 and removing packages are particularly inadequate. For
38 detailed information about this, please refer to the
39 ''Package Management System'' topic under
40 ''debian-faq'' in the GNU Info system. For information
41 about creating Debian packages, see the ''Debian Package
42 Management Tools'' topic in the same place.
43 !!DESCRIPTION
44
45
46 __dpkg__ is a medium-level tool to install, build, remove
47 and manage Debian GNU/Linux packages. The primary and more
48 user-friendly front-end for __dpkg__ is
49 dselect(8). __dpkg__ itself is controlled entirely
50 via command line parameters, which consist of exactly one
51 action and zero or more options. The action-parameter tells
52 dpkg what to do and options control the behavior of the
53 action in some way.
54
55
56 __dpkg__ can be also be used as a front-end to
57 __dpkg-deb__. The following are __dpkg-deb__ actions,
58 and if they are encountered, __dpkg__ just runs
59 __dpkg-deb__ with the parameters given to
60 it:
61
62
63 __ -b__, __--build__,
64 __ -c__, __--contents__,
65 __ -I__, __--info__,
66 __ -f__, __--field__,
67 __ -e__, __--control__,
68 __ -x__, __--extract__,
69 __ -X__, __--vextract__, and
70 __ --fsys-tarfile__.
4 perry 71 Please refer to dpkg-deb(1) for information about these actions.
1 perry 72 !!INFORMATION ABOUT PACKAGES
73
74
75 __dpkg__ maintains some usable information about
76 available packages. The information is divided in three
77 classes: __states__, __selection states__ and
78 __flags__. These values are intended to be changed mainly
79 with __dselect__.
80
81
82 __PACKAGE STATES__
83
84
85 __installed__
86
87
88 The package is unpacked and configured OK.
89
90
91 __half-installed__
92
93
94 The installation of the package has been started, but not
95 completed for some reason.
96
97
98 __not-installed__
99
100
101 The package is not installed on your system.
102
103
104 __unpacked__
105
106
107 The package is unpacked, but not configured.
108
109
110 __half-configured__
111
112
113 The package is unpacked and configuration has been started,
114 but not yet completed for some reason.
115
116
117 __config-files__
118
119
120 Only the configuration files of the package exist on the
121 system.
122
123
124 __PACKAGE SELECTION STATES__
125
126
127 __install__
128
129
130 The package is selected for installation.
131
132
133 __deinstall__
134
135
136 The package is selected for deinstallation (i.e. we want to
137 remove all files, except configuration files).
138
139
140 __purge__
141
142
143 The package is selected to be purged (i.e. we want to remove
144 everything, even configuration files).
145
146
147 __PACKAGE FLAGS__
148
149
150 __hold__
151
152
153 A package marked to be on __hold__ is not handled by
154 __dpkg__, unless forced to do that with option
155 __--force-hold__.
156
157
158 __reinst-required__
159
160
161 A package marked __reinst-required__ is broken and
162 requires reinstallation. These packages cannot be removed,
163 unless forced with option
164 __--force-reinstreq__.
165 !!ACTIONS
166
167
168 __dpkg -i__ | __--install__
169 ''package_file''...
170
171
172 Install the package. If __--recursive__ or __-R__
173 option is specified, ''package_file'' must refer to a
174 directory instead.
175
176
177 Installation consists of the following steps:
178
179
180 __1.__ Extract the control files of the new
181 package.
182
183
184 __2.__ If another version of the same package was
185 installed before the new installation, execute ''prerm''
186 script of the old package.
187
188
189 __3.__ Run ''preinst'' script, if provided by the
190 package.
191
192
193 __4.__ Unpack the new files, and at the same time back up
194 the old files, so that if something goes wrong, they can be
195 restored.
196
197
198 __5.__ If another version of the same package was
199 installed before the new installation, execute the
200 ''postrm'' script of the old package. Note that this
201 script is executed after the ''preinst'' script of the
202 new package, because new files are written at the same time
203 old files are removed.
204
205
206 __6.__ Configure the package. See __--configure__ for
207 detailed information about how this is done.
208
209
210 __dpkg --unpack__ ''package_file'' ...
211
212
213 Unpack the package, but don't configure it. If
214 __--recursive__ or __-R__ option is specified,
215 ''package_file'' must refer to a directory
216 instead.
217
218
219 __dpkg --configure__ ''package'' ... | __-a__ |
220 __--pending__
221
222
223 Reconfigure an unpacked package. If __-a__ or
224 __--pending__ is given instead of ''package'', all
225 unpacked but unconfigured packages are
226 configured.
227
228
229 Configuring consists of the following steps:
230
231
232 __1.__ Unpack the configuration files, and at the same
233 time back up the old configuration files, so that they can
234 be restored if something goes wrong.
235
236
237 __2.__ Run ''postinst'' script, if provided by the
238 package.
239
240
241 __dpkg -r__ | __--remove__ | __-P__ |
242 __--purge__ ''package'' ... | __-a__ |
243 __--pending__
244
245
246 Remove an installed package. __-r__ or __--remove__
247 remove everything except configuration files. This may avoid
248 having to reconfigure the package if it is reinstalled
249 later. (Configuration files are the files listed in the
250 ''debian/conffiles'' control file). __-P__ or
251 __--purge__ removes everything, including configuration
252 files. If __-a__ or __--pending__ is given instead of
253 a package name, then all packages unpacked, but marked to be
254 removed or purged in file ''/var/lib/dpkg/status'', are
255 removed or purged, respectively.
256
257
258 Removing of a package consists of the following
259 steps:
260
261
262 __1.__ Run ''prerm'' script
263
264
265 __2.__ Remove the installed files
266
267
268 __3.__ Run ''postrm'' script
269
270
271 __dpkg -p|--print-avail__ ''package''
272
273
274 Display details about ''package'', as found in
275 ''/var/lib/dpkg/available''.
276
277
278 __dpkg --update-avail__ | __--merge-avail__
279 ''Packages-file''
280
281
282 Update __dpkg__'s and __dselect__'s idea of which
283 packages are available. With action __--merge-avail__,
284 old information is combined with information from
285 ''Packages-file''. With action __--update-avail__, old
286 information is replaced with the information in the
287 ''Packages-file''. The ''Packages-file'' distributed
288 with Debian GNU/Linux is simply named ''Packages''.
289 __dpkg__ keeps its record of available packages in
290 ''/var/lib/dpkg/available''.
291
292
293 __dpkg -A__ | __--record-avail__ ''package_file''
294 ...
295
296
297 Update __dpkg__ and __dselect__'s idea of which
298 packages are available with information from the package
299 ''package_file''. If __--recursive__ or __-R__
300 option is specified, ''package_file'' must refer to a
301 directory instead.
302
303
304 __dpkg --forget-old-unavail__
305
306
307 Forget about uninstalled unavailable packages.
308
309
310 __dpkg --clear-avail__
311
312
313 Erase the existing information about what packages are
314 available.
315
316
317 __dpkg -l__ | __--list__ ''package-name-pattern''
318 ...
319
320
321 List packages matching given pattern. If no
322 ''package-name-pattern'' is given, list all packages in
323 ''/var/lib/dpkg/available''. Normal shell wildchars are
324 allowed in ''package-name-pattern''. (You will probably
325 have to quote ''package-name-pattern'' to prevent the
326 shell from performing filename expansion. For example,
327 __dpkg -l 'libc5*'__ will list all the package names
328 starting with __
329
330
331 __dpkg -s__ | __--status__ ''package-name''
332 ...
333
334
335 Report status of specified package. This just displays the
336 entry in the installed package status database.
337
338
339 __dpkg -C__ | __--audit__
340
341
342 Searches for packages that have been installed only
343 partially on your system. __dpkg__ will suggest what to
344 do with them to get them working.
345
346
347 __dpkg --get-selections__
348 [[''pattern''...]
349
350
351 Get list of package selections, and write it to
352 stdout.
353
354
355 __dpkg --set-selections__
356
357
358 Set package selections using file read from
359 stdin.
360
361
362 __dpkg --yet-to-unpack__
363
364
365 Searches for packages selected for installation, but which
366 for some reason still haven't been installed.
367
368
369 __dpkg -L__ | __--listfiles__ ''package''
370 ...
371
372
373 List files installed to your system from __package__.
374 However, note that files created by package-specific
375 installation-scripts are not listed.
376
377
378 __dpkg -S__ | __--search__
379 ''filename-search-pattern'' ...
380
381
382 Search for a filename from installed packages. All standard
383 shell wildchars can be used in the pattern.
384
385
386 __dpkg --print-architecture__
387
388
389 Print target architecture (for example,
390 gcc__.
391
392
393 __dpkg --print-gnu-build-architecture__
394
395
396 Print GNU version of target architecture (for example,
397
398
399 __dpkg --print-installation-architecture__
400
401
402 Print host architecture for installation.
403
404
405 __dpkg --compare-versions__ ''ver1 op
406 ver2''
407
408
409 Compare version numbers, where ''op'' is a binary
410 operator. __dpkg__ returns success (zero result) if the
411 specified condition is satisfied, and failure (nonzero
412 result) otherwise. There are two groups of operators, which
413 differ in how they treat a missing ''ver1'' or
414 ''ver2''. These treat no version as earlier than any
415 version: __lt le eq ne ge gt__. These treat no version as
416 later than any version: __lt-nl le-nl ge-nl gt-nl__.
417 These are provided only for compatibility with control file
418 syntax: __
419 __.
420
421
422 __dpkg --command-fd __
423
424
425 Accept a series of commands on input file descriptor
426 ____. Note: additional options set on the
427 command line, and thru this file descriptor, are not reset
428 for subsequent commands executed during the same
429 run.
430
431
432 __dpkg --help__
433
434
435 Display a brief help message.
436
437
438 __dpkg --force-help__
439
440
441 Give help about the __--force-__''thing''
442 options.
443
444
445 __dpkg -Dh__ | __--debug=help__
446
447
448 Give help about debugging options.
449
450
451 __dpkg --licence__ | __dpkg --license__
452
453
454 Display __dpkg__ licence.
455
456
457 __dpkg --version__
458
459
460 Display __dpkg__ version information.
461
462
463 __dpkg-deb-actions__
464
465
4 perry 466 See dpkg-deb(1) for more information about the
1 perry 467 following actions.
468
469
470 __dpkg -b__ | __--build__ ''directory'' [[''filename'']
471 Build a Debian GNU/Linux package.
472 __dpkg -c__ | __--contents__ ''filename
473 '' List contents of Debian GNU/Linux package.
474 __dpkg -e__ | __--control__ ''filename'' [[''directory'']
475 Extract control-information from a package.
476 __dpkg -x__ | __--extract__ ''filename directory
477 '' Extract the files contained by package.
478 __dpkg -f__ | __--field__ '' filename'' [[''control-field''] ...
479 Display control field(s) of a package.
480 __dpkg --fsys-tarfile__ ''filename
481 '' Display the filesystem tar-file contained by a
482 Debian package.
483 __dpkg -I__ | __--info__ ''filename'' [[''control-file'']
484 Show information about a package.
485 __dpkg -X__ | __--vextract__ ''filename directory
486 '' Extract and display the filenames contained by a
487 package.
488 !!OPTIONS
489
490
491 All options can be specified both on the commandline and in
492 the __dpkg__ configuration file
493 ''/etc/dpkg/dpkg.cfg''. Each line in the configuration
494 file is either an option (exactly the same as the
495 commandline option but without leading dashes) or a comment
496 (if it starts with a __#__).
497
498
499 __--abort-after=__''number''
500
501
502 Change after how many errors dpkg will abort. The default is
503 50.
504
505
506 __-B__|__--auto-deconfigure__
507
508
509 When a package is removed, there is a possibility that
510 another installed package depended on the removed package.
511 Specifying this option will cause automatic deconfiguration
512 of the package which depended on the removed
513 package.
514
515
516 __-D__''octal'' __|
517 --debug=__''octal''
518
519
520 Set debugging on. ''octal'' is formed by bitwise-orring
521 desired values together from the list below (note that these
522 values may change in future releases). __-Dh__ or
523 __--debug=help__ display these debugging
524 values.
525
526
527 number description 1 Generally helpful progress information
528 2 Invocation and status of maintainer scripts 10 Output for
529 each file processed 100 Lots of output for each file
530 processed 20 Output for each configuration file 200 Lots of
531 output for each configuration file 40 Dependencies and
532 conflicts 400 Lots of dependencies/conflicts output 1000
533 Lots of drivel about e.g. the dpkg/info dir 2000 Insane
534 amounts of drivel
535
536
537 __--force-__''things'' |
538 __--no-force-__''things'' |
539 __--refuse-__''things''
540
541
542 Force or refuse (__no-force__ and __refuse__ mean the
543 same thing) to do some things. ''things'' is a comma
544 separated list of things specified below.
545 __--force-help__ displays a message describing them.
546 Things marked with (*) are forced by default.
547
548
549 ''Warning: These options are mostly intended to be used by
550 experts only. Using them without fully understanding their
551 effects may break your whole system.''
552
553
554 __all__: Turns on(or off) all force options.
555
556
557 __auto-select__(*): Select packages to install them, and
558 deselect packages to remove them.
559
560
561 __downgrade__(*): Install a package, even if newer
562 version of it is already installed.
563
564
565 __configure-any__: Configure also any unpacked but
566 unconfigured packages on which the current package
567 depends.
568
569
570 __hold__: Process packages even when marked
571 __
572
573
574 __remove-reinstreq__: Remove a package, even if it's
575 broken and marked to require reinstallation. This may, for
576 example, cause parts of the package to remain on the system,
577 which will then be forgotten by __dpkg__.
578
579
580 __remove-essential__: Remove, even if the package is
581 considered essential. Essential packages contain mostly very
582 basic Unix commands. Removing them might cause the whole
583 system to stop working, so use with caution.
584
585
586 __depends__: Turn all dependency problems into
587 warnings.
588
589
590 __depends-version__: Don't care about versions when
591 checking dependencies.
592
593
594 __conflicts__: Install, even if it conflicts with another
595 package. This is dangerous, for it will usually cause
596 overwriting of some files.
597
598
599 __confnew__: If a conffile has been modified always
600 install the new version without prompting.
601
602
603 __confold__: If a conffile has been modified always keep
604 the old version without prompting.
605
606
607 __confdef__: If a conffile has been modified always
608 choose the default action. If there is no default action it
609 will stop to ask the user unless __--force-confnew__ or
610 __--force-confold__ is also been given, in which case it
611 will use that to decide the final action.
612
613
614 __overwrite__: Overwrite one package's file with
615 another's file.
616
617
618 __overwrite-dir__ Overwrite one package's directory with
619 another's file.
620
621
622 __overwrite-diverted__: Overwrite a diverted file with an
623 undiverted version.
624
625
626 __architecture__: Process even packages with the wrong
627 architecture.
628
629
630 __bad-path__: __PATH__ is missing important programs,
631 so problems are likely.
632
633
634 __not-root__: Try to (de)install things even when not
635 root.
636
637
638 __--ignore-depends__=''package'',...
639
640
641 Ignore dependency-checking for specified packages (actually,
642 checking is performed, but only warnings about conflicts are
643 given, nothing else).
644
645
646 __--new__ | __--old__
647
648
649 Select new or old binary package format. This is a
4 perry 650 dpkg-deb(1) option.
1 perry 651
652
653 __--nocheck__
654
655
656 Don't read or check contents of control file while building
4 perry 657 a package. This is a dpkg-deb(1) option.
1 perry 658
659
660 __--no-act__
661
662
663 Do everything which is supposed to be done, but don't write
664 any changes. This is used to see what would happen with the
665 specified action, without actually modifying
666 anything.
667
668
669 Be sure to give __--no-act__ before the action-parameter,
670 or you might end up with undesirable results. (e.g. __dpkg
671 --purge foo --no-act__ will first purge package foo and
672 then try to purge package --no-act, even though you probably
673 expected it to actually do nothing)
674
675
676 __-R__ | __--recursive__
677
678
679 Recursively handle all regular files matching pattern
680 __*.deb__ found at specified directories and all of its
681 subdirectories. This can be used with __-i__, __-A__,
682 __--install__, __--unpack__ and __--avail__
683 actions.
684
685
686 __-G__
687
688
689 Don't install a package if a newer version of the same
690 package is already installed. This is an alias of
691 __--refuse-downgrade.__
692
693
694 __--root=__''dir'' | __--admindir=__''dir'' |
695 __--instdir=__''dir''
696
697
698 Change default directories. __admindir__ defaults to
699 ''/var/lib/dpkg'' and contains many files that give
700 information about status of installed or uninstalled
701 packages, etc. __instdir__ defaults to ''/'' and
702 refers to the directory where packages are to be installed.
703 __instdir__ is also the directory passed to
704 chroot(2) before running ''package'''s
705 installation scripts, which means that the scripts see
706 __instdir__ as a root directory. Changing __root__
707 changes __instdir__ to ''dir'' and __admindir__ to
708 ''dir''__/var/lib/dpkg__.
709
710
711 __-O__ | __--selected-only__
712
713
714 Only process the packages that are selected for
715 installation. The actual marking is done with __dselect__
716 or by __dpkg__, when it handles packages. For example,
717 when a package is removed, it will be marked selected for
718 installation.
719
720
721 __-E__ | __--skip-same-version__
722
723
724 Don't install the package if the same version of the package
725 is already installed.
726
727
728 __--status-fd__ ''''
729
730
731 Send package status info to file descriptor
732 ''''. This can be given multiple times. Status
733 updates are of the form `status:
734 ''
735 !!FILES
736
737
738 ''/etc/dpkg/dpkg.cfg''
739
740
741 Configuration file with default options.
742
743
744 The other files listed below are in their default
745 directories, see option __--admindir__ to see how to
746 change locations of these files.
747
748
749 ''/var/lib/dpkg/available''
750
751
752 List of available packages.
753
754
755 ''/var/lib/dpkg/status''
756
757
758 Statuses of available packages. This file contains
759 information about whether a package is marked for removing
760 or not, whether it is installed or not, etc. See section
761 __INFORMATION ABOUT PACKAGES__ for more
762 info.
763
764
765 The following files are components of a binary package. See
766 deb(5) for more information about them:
767
768
769 ''control''
770
771
772 ''conffiles''
773
774
775 ''preinst''
776
777
778 ''postinst''
779
780
781 ''prerm''
782
783
784 ''postrm''
785 !!ENVIRONMENT VARIABLES
786
787
788 __DPKG_NO_TSTP__
789
790
791 Define this to something if you prefer __dpkg__ starting
792 a new shell rather than suspending itself, while doing a
793 shell escape.
794
795
796 __SHELL__
797
798
799 The program __dpkg__ will execute while starting a new
800 shell.
801
802
803 __COLUMNS__
804
805
806 Sets the number of columns __dpkg__ should use when
807 displaying formatted text. Currently only used by
808 -l.
809 !!EXAMPLES
810
811
812 To list packages related to the editor vi:__
813 dpkg -l '*vi*'__
814
815
816 To see the entries in ''/var/lib/dpkg/available'' on two
817 packages:__
818 dpkg --print-avail elvis vim | less__
819
820
821 To search the listing of packages yourself:__
822 less /var/lib/dpkg/available__
823
824
825 To remove an installed elvis package:__
826 dpkg -r elvis__
827
828
829 To install a package, you first need to find it in an
830 archive or CDROM. The
831 cd /cdrom/hamm/hamm/binary/editors dpkg -i
832 vim_4.5-3.deb__
833
834
835 To make a local copy of the package selection states:__
836 dpkg --get-selections
837
838
839 You might transfer this file to another computer, and
840 install it there with:__
841 dpkg --set-selections
842 Note that this will not actually install or remove anything,
843 but just set the selection state on the requested packages.
844 You will need some other application to actually download
845 and install the requested packages.
846
847
848 Ordinarily, you will find that dselect(8) provides a
849 more convenient way to modify the package selection
850 states.
851 !!SEE ALSO
852
853
4 perry 854 dselect(8), dpkg-deb(1), deb(5), and
855 deb-control(5)
1 perry 856 !!BUGS
857
858
859 __--no-act__ usually gives less information than might be
860 helpful.
861 !!AUTHORS
862
863
864 See __/usr/share/doc/dpkg/THANKS__ for the list of people who have
865 contributed to __dpkg__ .
866 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.