Switch from pkg-config to pkgconf
[dpkg.git] / man / dselect.pod
blobe704a1bbee40df2d27e7ea990472ef09a1d6992a
1 # dselect manual page - dselect(1)
3 # Copyright © 1995 Juho Vuori <javuori@cc.helsinki.fi>
4 # Copyright © 2000 Josip Rodin
5 # Copyright © 2001 Joost Kooij
6 # Copyright © 2001 Wichert Akkerman <wakkerma@debian.org>
7 # Copyright © 2010-2015 Guillem Jover <guillem@debian.org>
9 # This is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # This is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
22 =encoding utf8
24 =head1 NAME
26 dselect - Debian package management frontend
28 =head1 SYNOPSIS
30 B<dselect>
31 [I<option>...] [I<command>...]
33 =head1 DESCRIPTION
35 B<dselect>
36 is one of the primary user interfaces for managing packages on a Debian
37 system. At the B<dselect> main menu, the system administrator can:
39 =over
41 =item *
43 Update the list of available package versions,
45 =item *
47 View the status of installed and available packages,
49 =item *
51 Alter package selections and manage dependencies,
53 =item *
55 Install new packages or upgrade to newer versions.
57 =back
59 B<dselect>
60 operates as a front-end to B<dpkg>(1), the low-level Debian package
61 handling tool. It features a full-screen package selections manager
62 with package depends and conflicts resolver. When run with administrator
63 privileges, packages can be installed, upgraded and removed. Various
64 access methods can be configured to retrieve available package version
65 information and installable packages from package repositories.
66 Depending on the used access method, these repositories can be public
67 archive servers on the internet, local archive servers or CD-ROMs.
68 The recommended access method is I<apt>, which is provided by the
69 package B<apt>(8).
71 Normally B<dselect> is invoked without parameters. An interactive
72 menu is presented, offering the user a list of commands. If a command
73 is given as argument, then that command is started immediately. Several
74 command line parameters are still available to modify the running behaviour
75 of B<dselect> or show additional information about the program.
77 =head1 OPTIONS
79 All options can be specified both on the command line and in the B<dselect>
80 configuration file I<%PKGCONFDIR%/dselect.cfg> or the files on the
81 configuration directory I<%PKGCONFDIR%/dselect.cfg.d/>. Each line in the
82 configuration file is either an option (exactly the same as the
83 command line option but without leading hyphens) or a comment (if it starts
84 with a ‘B<#>’).
86 =over
88 =item B<--admindir> I<directory>
90 Changes the directory where the dpkg ‘I<status>’,
91 ‘I<available>’ and similar files are located.
92 Defaults to I<%ADMINDIR%> if B<DPKG_ADMINDIR> has not been set.
94 =item B<--instdir> I<directory>
96 Set the installation directory, which refers to the directory where
97 packages get installed (since dpkg 1.21.2).
98 Defaults to «I</>» if B<DPKG_ROOT> has not been set.
100 =item B<--root> I<directory>
102 Set the root directory to I<directory>, which sets the installation
103 directory to «I<directory>» and the administrative
104 directory to «I<directory>%ADMINDIR%» (since dpkg 1.21.0).
106 =item B<-D>I<file>, B<--debug> I<file>
108 Turn on debugging. Debugging information is sent to I<file>.
110 =item B<--expert>
112 Turns on expert mode, i.e. doesn't display possibly annoying help
113 messages.
115 =item B<--color> I<screenpart>:[I<foreground>],[I<background>][:I<attr>[I<+attr>]...]
117 =item B<--colour> I<screenpart>:[I<foreground>],[I<background>][:I<attr>[I<+attr>]...]
119 Configures screen colors. This works only if your display supports colors.
120 This option may be used multiple times (and is best used in
121 I<dselect.cfg>). Each use changes the color (and optionally, other
122 attributes) of one part of the screen.
123 The parts of the screen (from top to bottom) are:
125 =over
127 =item B<title>
129 The screen title.
131 =item B<listhead>
133 The header line above the list of packages.
135 =item B<list>
137 The scrolling list of packages (and also some help text).
139 =item B<listsel>
141 The selected item in the list.
143 =item B<pkgstate>
145 In the list of packages, the text indicating the current state of each
146 package.
148 =item B<pkgstatesel>
150 In the list of packages, the text indicating the current state of the
151 currently selected package.
153 =item B<infohead>
155 The header line that displays the state of the currently selected package.
157 =item B<infodesc>
159 The package's short description.
161 =item B<info>
163 Used to display package info such as the package's description.
165 =item B<infofoot>
167 The last line of the screen when selecting packages.
169 =item B<query>
171 Used to display query lines
173 =item B<helpscreen>
175 Color of help screens.
177 =back
179 After the part of the screen comes a colon and the color specification. You
180 can specify either the foreground color, the background color, or both,
181 overriding the compiled-in colors. Use standard curses color names.
183 Optionally, after the color specification is another colon, and an
184 attribute specification. This is a list of one or more attributes,
185 separated by plus (‘+’) characters.
186 Available attributes include (not all of these will work on all terminals):
187 B<normal>, B<standout>, B<underline>, B<reverse>, B<blink>,
188 B<bright>, B<dim>, B<bold>
190 =item B<-?>, B<--help>
192 Print a brief help text and exit successfully.
194 =item B<--version>
196 Print version information and exit successfully.
198 =back
200 =head1 COMMANDS
202 When
203 B<dselect>
204 is started it can perform the following commands, either directly if it
205 was specified on the command line or by prompting the user with a menu
206 of available commands if running interactively:
208 =head2 access
210 Choose and configure an access method to access package repositories.
212 By default, B<dselect> provides several methods such
213 as I<media>, I<file> or I<ftp>, but other
214 packages may provide additional methods, for example the I<apt> access method
215 provided by the B<apt>(8) package.
217 The use of the I<apt> access method is strongly recommended.
219 =head2 update
221 Refresh the available packages database.
223 Retrieves a list of available package versions from the package
224 repository, configured for the current access method, and update
225 the dpkg database. The package lists are commonly provided by the
226 repository as files named I<Packages> or I<Packages.gz>.
227 These files can be generated by repository maintainers, using the
228 program B<dpkg-scanpackages>(1).
230 Details of the update command depend on the access method's implementation.
231 Normally the process is straightforward and requires no user interaction.
233 =head2 select
235 View or manage package selections and dependencies.
237 This is the main function of B<dselect>. In the select screen, the
238 user can review a list of all available and installed packages. When run
239 with administrator privileges, it is also possible to interactively
240 change packages selection state. B<dselect> tracks the implications
241 of these changes to other depending or conflicting packages.
243 When a conflict or failed depends is detected, a dependency resolution
244 subscreen is prompted to the user. In this screen, a list of conflicting
245 or depending packages is shown, and for each package listed, the reason
246 for its listing is shown. The user may apply the suggestions proposed
247 by B<dselect>, override them, or back out all the changes, including
248 the ones that created the unresolved depends or conflicts.
250 The use of the interactive package selections management screen is
251 explained in more detail below.
253 =head2 install
255 Installs selected packages.
257 The configured access method will fetch installable or upgradable packages
258 from the relevant repositories and install these using B<dpkg>.
259 Depending on the implementation of the access method, all packages can
260 be prefetched before installation, or fetched when needed.
261 Some access methods may also remove packages that were marked for removal.
263 If an error occurred during install, it is usually advisable to run
264 install again. In most cases, the problems will disappear or be solved.
265 If problems persist or the installation performed was incorrect, please
266 investigate into the causes and circumstances, and file a bug in the
267 Debian bug tracking system. Instructions on how to do this can be found
268 at L<https://bugs.debian.org/> or by reading the documentation
269 for B<bug>(1) or B<reportbug>(1), if these are installed.
271 Details of the install command depend on the access method's implementation.
272 The user's attention and input may be required during installation,
273 configuration or removal of packages. This depends on the maintainer
274 scripts in the package. Some packages make use of the B<debconf>(1)
275 library, allowing for more flexible or even automated installation
276 setups.
278 =head2 config
280 Configures any previously installed, but not fully configured packages.
282 =head2 remove
284 Removes or purges installed packages, that are marked for removal.
286 =head2 quit
288 Quit B<dselect>.
290 Exits the program with zero (successful) error code.
292 =head1 PACKAGE SELECTIONS MANAGEMENT
294 =head2 Introduction
296 B<dselect>
297 directly exposes
298 the administrator to some of the complexities involved with managing
299 large sets of packages with many interdependencies. For a user who is
300 unfamiliar with the concepts and the ways of the Debian package management
301 system, it can be quite overwhelming. Although B<dselect> is aimed
302 at easing package management and administration, it is only instrumental
303 in doing so and cannot be assumed to be a sufficient substitute for
304 administrator skill and understanding. The user is required to
305 be familiar with the concepts underlying the Debian packaging system.
306 In case of doubt, consult the B<dpkg>(1) manpage and the distribution
307 policy.
309 Unless B<dselect> is run in expert
310 or immediate mode, a help screen is first displayed when choosing this
311 command from the menu. The user is I<strongly> advised to study all of
312 the information presented in the online help screens, when one pops up.
313 The online help screens can at any time be invoked with the ‘B<?>’ key.
315 =head2 Screen layout
317 The select screen is by default split in a top and a bottom half.
318 The top half shows a list of packages. A cursor bar can select an
319 individual package, or a group of packages, if applicable, by selecting
320 the group header. The bottom half of the screen shows some details
321 about the package currently selected in the top half of the screen.
322 The type of detail that is displayed can be varied.
324 Pressing the ‘B<I>’ key toggles a full-screen display of the packages
325 list, an enlarged view of the package details, or the equally split screen.
327 =head2 Package details view
329 The package details view by default shows the extended package description
330 for the package that is currently selected in the packages status list.
331 The type of detail can be toggled by pressing the ‘B<i>’ key.
332 This alternates between:
334 =over
336 =item *
338 the extended description
340 =item *
342 the control information for the installed version
344 =item *
346 the control information for the available version
348 =back
350 In a dependency resolution screen, there is also the possibility of
351 viewing the specific unresolved depends or conflicts related to the
352 package and causing it to be listed.
354 =head2 Packages status list
356 The main select screen displays a list of all packages known to the Debian
357 package management system. This includes packages installed on the system
358 and packages known from the available packages database.
360 For every package, the list shows the package's status, priority, section,
361 installed and available architecture, installed and available versions,
362 the package name and its short description, all in one line.
363 By pressing the ‘B<A>’ key, the display of the installed and
364 available architecture can be toggled between on an off.
365 By pressing the ‘B<V>’ key, the display of the installed and
366 available version can be toggled between on an off.
367 By pressing the ‘B<v>’ key, the package status display is toggled
368 between verbose and shorthand.
369 Shorthand display is the default.
371 The shorthand status indication consists
372 of four parts: an error flag, which should normally be clear, the
373 current status, the last selection state and the current selection state.
374 The first two relate to the actual state of the package, the second pair
375 are about the selections set by the user.
377 These are the meanings of the shorthand package status indicator codes:
379 =over
381 Error flag:
383 =over
385 =item I<empty>   no error
387 =item B<R>       serious error, needs reinstallation;
389 =back
391 Installed state:
393 =over
395 =item I<empty>   not installed;
397 =item B<*>       fully installed and configured;
399 =item B<->       not installed but some config files may remain;
401 =item B<U>       unpacked but not yet configured;
403 =item B<C>       half-configured (an error happened);
405 =item B<I>       half-installed (an error happened).
407 =back
409 Current and requested selections:
411 =over
413 =item B<*>       marked for installation or upgrade;
415 =item B<->       marked for removal, configuration files remain;
417 =item B<=>       on hold: package will not be processed at all;
419 =item B<_>       marked for purge, also remove configuration;
421 =item B<n>       package is new and has yet to be marked.
423 =back
425 =back
427 =head2 Cursor and screen movement
429 The package selection list and the dependency conflict
430 resolution screens can be navigated using motion
431 commands mapped to the following keys:
433 =over
435 =over
437 =item B<p, Up, k>           move cursor bar up
439 =item B<n, Down, j>         move cursor bar down
441 =item B<P, Pgup, Backspace> scroll list 1 page up
443 =item B<N, Pgdn, Space>     scroll list 1 page down
445 =item B<^p>                 scroll list 1 line up
447 =item B<^n>                 scroll list 1 line down
449 =item B<t, Home>            jump to top of list
451 =item B<e, End>             jump to end of list
453 =item B<u>                  scroll info 1 page up
455 =item B<d>                  scroll info 1 page down
457 =item B<^u>                 scroll info 1 line up
459 =item B<^d>                 scroll info 1 line down
461 =item B<B, Left-arrow>      pan display 1/3 screen left
463 =item B<F, Right-arrow>     pan display 1/3 screen right
465 =item B<^b>                 pan display 1 character left
467 =item B<^f>                 pan display 1 character right
469 =back
471 =back
473 =head2 Searching and sorting
475 The list of packages can be searched by package name. This
476 is done by pressing ‘B</>’, and typing a simple search
477 string. The string is interpreted as a
478 B<regex>(7)
479 regular expression.
480 If you add ‘B</d>’ to the search expression, dselect will also
481 search in descriptions.
482 If you add ‘B</i>’ the search will be case insensitive.
483 You may combine these two suffixes like this: ‘B</id>’.
484 Repeated searching is accomplished by repeatedly pressing the
485 ‘B<n>’ or ‘B<\>’ keys, until the wanted package is found.
486 If the search reaches the bottom of the list, it wraps to the top
487 and continues searching from there.
489 The list sort order can be varied by pressing
490 the ‘B<o>’ and ‘B<O>’ keys repeatedly.
491 The following nine sort orderings can be selected:
493 =over
495 =over
497 =item B<alphabet>
499 =item B<priority+section>
501 =item B<section+priority>
503 =item B<available>
505 =item B<available+priority>
507 =item B<available+section>
509 =item B<status>
511 =item B<status+priority>
513 =item B<status+section>
515 =back
517 =back
519 Where not listed above explicitly, alphabetic order is used as
520 the final subordering sort key.
522 =head2 Altering selections
524 The requested selection state of individual packages may be
525 altered with the following commands:
527 =over
529 =over
531 =item B<+, Insert>    install or upgrade
533 =item B<=, H>         hold in present state and version
535 =item B<:, G>         unhold: upgrade or leave uninstalled
537 =item B<-, Delete>    remove, but leave configuration
539 =item B<_>            remove & purge configuration
541 =back
543 =back
545 When the change request results in one or more unsatisfied depends
546 or conflicts, B<dselect> prompts the user with a dependency resolution
547 screen. This will be further explained below.
549 It is also possible to apply these commands to groups of package
550 selections, by pointing the cursor bar onto a group header. The
551 exact grouping of packages is dependent on the current list ordering
552 settings.
554 Proper care should be taken when altering large groups of selections,
555 because this can instantaneously create large numbers of unresolved
556 depends or conflicts, all of which will be listed in one dependency
557 resolution screen, making them very hard to handle. In practice,
558 only hold and unhold operations are useful when applied to groups.
560 =head2 Resolving depends and conflicts
562 When the change request results in one or more unsatisfied depends
563 or conflicts, B<dselect> prompts the user with a dependency resolution
564 screen. First however, an informative help screen is displayed.
566 The top half of this screen lists all the packages that will have
567 unresolved depends or conflicts, as a result of the requested change,
568 and all the packages whose installation can resolve any of these
569 depends or whose removal can resolve any of the conflicts.
570 The bottom half defaults to show the depends or conflicts that
571 cause the currently selected package to be listed.
573 When the sublist of packages is displayed initially, B<dselect>
574 may have already set the requested selection status of some of the
575 listed packages, in order to resolve the depends or conflicts that
576 caused the dependency resolution screen to be displayed. Usually,
577 it is best to follow up the suggestions made by B<dselect>.
579 The listed packages' selection state may be reverted to the original
580 settings, as they were before the unresolved depends or conflicts
581 were created, by pressing the ‘B<R>’ key.
582 By pressing the ‘B<D>’ key, the automatic suggestions are reset,
583 but the change that caused the dependency resolution screen to be prompted
584 is kept as requested.
585 Finally, by pressing ‘B<U>’, the selections are again set to the
586 automatic suggestion values.
588 =head2 Establishing the requested selections
590 By pressing B<enter>, the currently displayed set of selections
591 is accepted. If B<dselect> detects no unresolved depends as a result
592 of the requested selections, the new selections will be set.
593 However, if there are any unresolved depends, B<dselect> will again
594 prompt the user with a dependency resolution screen.
596 To alter a set of selections that creates unresolved depends or
597 conflicts and forcing B<dselect> to accept it, press the ‘B<Q>’
598 key. This sets the selections as specified by the user,
599 unconditionally. Generally, don't do this unless you've read
600 the fine print.
602 The opposite effect, to back out any selections change requests and
603 go back to the previous list of selections, is attained by pressing
604 the ‘B<X>’ or B<escape> keys. By repeatedly pressing these
605 keys, any possibly detrimental changes to the requested package
606 selections can be backed out completely to the last established
607 settings.
609 If you mistakenly establish some settings and wish to revert all the
610 selections to what is currently installed on the system, press the
611 ‘B<C>’ key.
612 This is somewhat similar to using the unhold command on all packages,
613 but provides a more obvious panic button in cases where the user
614 pressed B<enter> by accident.
616 =head1 EXIT STATUS
618 =over
620 =item B<0>
622 The requested command was successfully performed.
624 =item B<2>
626 Fatal or unrecoverable error due to invalid command-line usage, or
627 interactions with the system, such as accesses to the database,
628 memory allocations, etc.
630 =back
632 =head1 ENVIRONMENT
634 =over
636 =item B<DPKG_ROOT>
638 If set and the B<--instdir> or B<--root> options have not been specified,
639 it will be used as the filesystem root directory (since dpkg 1.21.0).
641 =item B<DPKG_ADMINDIR>
643 If set and the B<--admindir> or B<--root> option have not been specified,
644 it will be used as the B<dpkg> database directory (since dpkg 1.21.0).
646 =item B<HOME>
648 If set, B<dselect> will use it as the directory from which to read the
649 user specific configuration file.
651 =back
653 =head1 BUGS
656 B<dselect>
657 package selection interface is confusing to some new users.
658 Reportedly, it even makes seasoned kernel developers cry.
660 The documentation is lacking.
662 There is no help option in the main menu.
664 The visible list of available packages cannot be reduced.
666 The built in access methods can no longer stand up to current quality
667 standards. Use the access method provided by B<apt>(8), it is not only not
668 broken, it is also much more flexible than the built in access methods.
670 =head1 SEE ALSO
672 B<dpkg>(1),
673 B<apt>(8),
674 B<sources.list>(5),
675 B<deb>(5).