dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / dselect.man
CommitLineData
1479465f
GJ
1.\" dselect manual page - dselect(1)
2.\"
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>
8.\"
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.
13.\"
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.
18.\"
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/>.
21.
22.TH dselect 1 "%RELEASE_DATE%" "%VERSION%" "dpkg suite"
23.nh
24.SH NAME
25dselect \- Debian package management frontend
26.
27.SH SYNOPSIS
28.B dselect
29.RI [ option "...] [" command "...]"
30.
31.SH DESCRIPTION
32.B dselect
33is one of the primary user interfaces for managing packages on a Debian
34system. At the \fBdselect\fP main menu, the system administrator can:
35 - Update the list of available package versions,
36 - View the status of installed and available packages,
37 - Alter package selections and manage dependencies,
38 - Install new packages or upgrade to newer versions.
39.PP
40.B dselect
41operates as a front-end to \fBdpkg\fP(1), the low-level Debian package
42handling tool. It features a full-screen package selections manager
43with package depends and conflicts resolver. When run with administrator
44privileges, packages can be installed, upgraded and removed. Various
45access methods can be configured to retrieve available package version
46information and installable packages from package repositories.
47Depending on the used access method, these repositories can be public
48archive servers on the internet, local archive servers or cdroms.
49The recommended access method is \fIapt\fP, which is provided by the
50package \fBapt\fP.
51.PP
52Normally \fBdselect\fP is invoked without parameters. An interactive
53menu is presented, offering the user a list of commands. If a command
54is given as argument, then that command is started immediately. Several
55command line parameters are still available to modify the running behaviour
56of \fBdselect\fP or show additional information about the program.
57.
58.SH OPTIONS
59All options can be specified both on the command line and in the \fBdselect\fP
60configuration file \fI%PKGCONFDIR%/dselect.cfg\fP or the files on the
61configuration directory \fI%PKGCONFDIR%/dselect.cfg.d/\fP. Each line in the
62configuration file is either an option (exactly the same as the
63command line option but without leading hyphens) or a comment (if it starts
64with a ‘\fB#\fR’).
65.br
66.TP
67.BI \-\-admindir " directory"
68Changes the directory where the dpkg ‘\fIstatus\fP’,
69‘\fIavailable\fP’ and similar files are located.
70This defaults to \fI%ADMINDIR%\fP
71and normally there shouldn't be any need to change it.
72.TP
73.BR \-D "\fIfile\fP, " \-\-debug " \fIfile\fP"
74Turn on debugging. Debugging information is sent to \fIfile\fP.
75.TP
76.B \-\-expert
77Turns on expert mode, i.e. doesn't display possibly annoying help
78messages.
79.TP
80.BR \-\-colour | \-\-color " \fIscreenpart\fP:[\fIforeground\fP],[\fIbackground\fP][:\fIattr\fP[\fI+attr\fP]...]"
81Configures screen colors. This works only if your display supports colors.
82This option may be used multiple times (and is best used in
83\fIdselect.cfg\fP). Each use changes the color (and optionally, other
84attributes) of one part of the screen.
85The parts of the screen (from top to bottom) are:
86.RS
87.TP
88.B title
89The screen title.
90.TP
91.B listhead
92The header line above the list of packages.
93.TP
94.B list
95The scrolling list of packages (and also some help text).
96.TP
97.B listsel
98The selected item in the list.
99.TP
100.B pkgstate
101In the list of packages, the text indicating the current state of each
102package.
103.TP
104.B pkgstatesel
105In the list of packages, the text indicating the current state of the
106currently selected package.
107.TP
108.B infohead
109The header line that displays the state of the currently selected package.
110.TP
111.B infodesc
112The package's short description.
113.TP
114.B info
115Used to display package info such as the package's description.
116.TP
117.B infofoot
118The last line of the screen when selecting packages.
119.TP
120.B query
121Used to display query lines
122.TP
123.B helpscreen
124Color of help screens.
125.RE
126.IP
127After the part of the screen comes a colon and the color specification. You
128can specify either the foreground color, the background color, or both,
129overriding the compiled-in colors. Use standard curses color names.
130.IP
131Optionally, after the color specification is another colon, and an
132attribute specification. This is a list of one or more attributes,
133separated by plus (‘+’) characters.
134Available attributes include (not all of these will work on all terminals):
135.BR normal ", " standout ", " underline ", " reverse ", " blink ", "
136.BR bright ", " dim ", " bold
137.TP
138.BR \-? ", " \-\-help
139Print a brief help text and exit successfully.
140.TP
141.B \-\-version
142Print version information and exit successfully.
143.
144.SH COMMANDS
145When
146.B dselect
147is started it can perform the following commands, either directly if it
148was specified on the command line or by prompting the user with a menu
149of available commands if running interactively:
150.SS access
151Choose and configure an access method to access package repositories.
152.sp
153By default, \fBdselect\fP provides several methods such
154as \fIcdrom\fP, \fImulti_cd\fP, \fInfs\fP, \fImulti_nfs\fP, \fIharddisk\fP,
155\fImounted\fP, \fImulti_mount\fP, \fIfloppy\fP or \fIftp\fP, but other
156packages may provide additional methods, eg. the \fIapt\fP access method
157provided by the \fBapt\fP package.
158.sp
159The use of the \fIapt\fP access method is strongly recommended.
160.sp
161.SS update
162Refresh the available packages database.
163.sp
164Retrieves a list of available package versions from the package
165repository, configured for the current access method, and update
166the dpkg database. The package lists are commonly provided by the
167repository as files named \fIPackages\fP or \fIPackages.gz\fP.
168These files can be generated by repository maintainers, using the
169program \fBdpkg\-scanpackages\fP(1).
170.sp
171Details of the update command depend on the access method's implementation.
172Normally the process is straightforward and requires no user interaction.
173.sp
174.SS select
175View or manage package selections and dependencies.
176.sp
177This is the main function of \fBdselect\fP. In the select screen, the
178user can review a list of all available and installed packages. When run
179with administrator privileges, it is also possible to interactively
180change packages selection state. \fBdselect\fP tracks the implications
181of these changes to other depending or conflicting packages.
182.sp
183When a conflict or failed depends is detected, a dependency resolution
184subscreen is prompted to the user. In this screen, a list of conflicting
185or depending packages is shown, and for each package listed, the reason
186for its listing is shown. The user may apply the suggestions proposed
187by \fBdselect\fP, override them, or back out all the changes, including
188the ones that created the unresolved depends or conflicts.
189.sp
190The use of the interactive package selections management screen is
191explained in more detail below.
192.sp
193.SS install
194Installs selected packages.
195.sp
196The configured access method will fetch installable or upgradable packages
197from the relevant repositories and install these using \fBdpkg\fP.
198Depending on the implementation of the access method, all packages can
199be prefetched before installation, or fetched when needed.
200Some access methods may also remove packages that were marked for removal.
201.sp
202If an error occurred during install, it is usually advisable to run
203install again. In most cases, the problems will disappear or be solved.
204If problems persist or the installation performed was incorrect, please
205investigate into the causes and circumstances, and file a bug in the
206Debian bug tracking system. Instructions on how to do this can be found
207at https://bugs.debian.org/ or by reading the documentation
208for \fBbug\fP(1) or \fBreportbug\fP(1), if these are installed.
209.sp
210Details of the install command depend on the access method's implementation.
211The user's attention and input may be required during installation,
212configuration or removal of packages. This depends on the maintainer
213scripts in the package. Some packages make use of the \fBdebconf\fP(1)
214library, allowing for more flexible or even automated installation
215setups.
216.sp
217.SS config
218Configures any previously installed, but not fully configured packages.
219.sp
220.SS remove
221Removes or purges installed packages, that are marked for removal.
222.sp
223.SS quit
224Quit \fBdselect\fP.
225.sp
226Exits the program with zero (successful) errorcode.
227.sp
228.
229.SH PACKAGE SELECTIONS MANAGEMENT
230.sp
231.SS Introduction
232.sp
233.B dselect
234directly exposes
235the administrator to some of the complexities involved with managing
236large sets of packages with many interdependencies. For a user who is
237unfamiliar with the concepts and the ways of the Debian package management
238system, it can be quite overwhelming. Although \fBdselect\fP is aimed
239at easing package management and administration, it is only instrumental
240in doing so and cannot be assumed to be a sufficient substitute for
241administrator skill and understanding. The user is required to
242be familiar with the concepts underlying the Debian packaging system.
243In case of doubt, consult the \fBdpkg\fP(1) manpage and the distribution
244policy.
245.sp
246Unless \fBdselect\fP is run in expert
247or immediate mode, a help screen is first displayed when choosing this
248command from the menu. The user is \fIstrongly\fP advised to study all of
249the information presented in the online help screens, when one pops up.
250The online help screens can at any time be invoked with the ‘\fB?\fP’ key.
251.sp
252.SS Screen layout
253.sp
254The select screen is by default split in a top and a bottom half.
255The top half shows a list of packages. A cursor bar can select an
256individual package, or a group of packages, if applicable, by selecting
257the group header. The bottom half of the screen shows some details
258about the package currently selected in the top half of the screen.
259The type of detail that is displayed can be varied.
260.sp
261Pressing the ‘\fBI\fP’ key toggles a full-screen display of the packages
262list, an enlarged view of the package details, or the equally split screen.
263.sp
264.SS Package details view
265.sp
266The package details view by default shows the extended package description
267for the package that is currently selected in the packages status list.
268The type of detail can be toggled by pressing the ‘\fBi\fP’ key.
269This alternates between:
270 - the extended description
271 - the control information for the installed version
272 - the control information for the available version
273.sp
274In a dependency resolution screen, there is also the possibility of
275viewing the specific unresolved depends or conflicts related to the
276package and causing it to be listed.
277.sp
278.SS Packages status list
279.sp
280The main select screen displays a list of all packages known to the Debian
281package management system. This includes packages installed on the system
282and packages known from the available packages database.
283.sp
284For every package, the list shows the package's status, priority, section,
285installed and available architecture, installed and available versions,
286the package name and its short description, all in one line.
287By pressing the ‘\fBA\fP’ key, the display of the installed and
288available architecture can be toggled between on an off.
289By pressing the ‘\fBV\fP’ key, the display of the installed and
290available version can be toggled between on an off.
291By pressing the ‘\fBv\fP’ key, the package status display is toggled
292between verbose and shorthand.
293Shorthand display is the default.
294.sp
295The shorthand status indication consists
296of four parts: an error flag, which should normally be clear, the
297current status, the last selection state and the current selection state.
298The first two relate to the actual state of the package, the second pair
299are about the selections set by the user.
300.sp
301These are the meanings of the shorthand package status indicator codes:
302 Error flag:
303 \fIempty\fP no error
304 \fBR\fP serious error, needs reinstallation;
305 Installed state:
306 \fIempty\fP not installed;
307 \fB*\fP fully installed and configured;
308 \fB\-\fP not installed but some config files may remain;
309 \fBU\fP unpacked but not yet configured;
310 \fBC\fP half-configured (an error happened);
311 \fBI\fP half-installed (an error happened).
312 Current and requested selections:
313 \fB*\fP marked for installation or upgrade;
314 \fB\-\fP marked for removal, configuration files remain;
315 \fB=\fP on hold: package will not be processed at all;
316 \fB_\fP marked for purge, also remove configuration;
317 \fBn\fP package is new and has yet to be marked.
318.sp
319.SS Cursor and screen movement
320.sp
321The package selection list and the dependency conflict
322resolution screens can be navigated using motion
323commands mapped to the following keys:
324.br
325 \fBp, Up, k\fP move cursor bar up
326 \fBn, Down, j\fP move cursor bar down
327 \fBP, Pgup, Backspace\fP scroll list 1 page up
328 \fBN, Pgdn, Space\fP scroll list 1 page down
329 \fB^p\fP scroll list 1 line up
330 \fB^n\fP scroll list 1 line down
331 \fBt, Home\fP jump to top of list
332 \fBe, End\fP jump to end of list
333 \fBu\fP scroll info 1 page up
334 \fBd\fP scroll info 1 page down
335 \fB^u\fP scroll info 1 line up
336 \fB^d\fP scroll info 1 line down
337 \fBB, Left-arrow\fP pan display 1/3 screen left
338 \fBF, Right-arrow\fP pan display 1/3 screen right
339 \fB^b\fP pan display 1 character left
340 \fB^f\fP pan display 1 character right
341.sp
342.SS Searching and sorting
343.sp
344The list of packages can be searched by package name. This
345is done by pressing ‘\fB/\fP’, and typing a simple search
346string. The string is interpreted as a
347.BR regex (7)
348regular expression.
349If you add ‘\fB/d\fP’ to the search expression, dselect will also
350search in descriptions.
351If you add ‘\fB/i\fP’ the search will be case insensitive.
352You may combine these two suffixes like this: ‘\fB/id\fP’.
353Repeated searching is accomplished by repeatedly pressing the
354‘\fBn\fP’ or ‘\fB\\\fP’ keys, until the wanted package is found.
355If the search reaches the bottom of the list, it wraps to the top
356and continues searching from there.
357.sp
358The list sort order can be varied by pressing
359the ‘\fBo\fP’ and ‘\fBO\fP’ keys repeatedly.
360The following nine sort orderings can be selected:
361 alphabet available status
362 priority+section available+priority status+priority
363 section+priority available+section status+section
364.br
365Where not listed above explicitly, alphabetic order is used as
366the final subordering sort key.
367.sp
368.SS Altering selections
369.sp
370The requested selection state of individual packages may be
371altered with the following commands:
372 \fB+, Insert\fP install or upgrade
373 \fB=, H\fP hold in present state and version
374 \fB:, G\fP unhold: upgrade or leave uninstalled
375 \fB\-, Delete\fP remove, but leave configuration
376 \fB_\fP remove & purge configuration
377.sp
378When the change request results in one or more unsatisfied depends
379or conflicts, \fBdselect\fP prompts the user with a dependency resolution
380screen. This will be further explained below.
381.sp
382It is also possible to apply these commands to groups of package
383selections, by pointing the cursor bar onto a group header. The
384exact grouping of packages is dependent on the current list ordering
385settings.
386.sp
387Proper care should be taken when altering large groups of selections,
388because this can instantaneously create large numbers of unresolved
389depends or conflicts, all of which will be listed in one dependency
390resolution screen, making them very hard to handle. In practice,
391only hold and unhold operations are useful when applied to groups.
392.sp
393.SS Resolving depends and conflicts
394.sp
395When the change request results in one or more unsatisfied depends
396or conflicts, \fBdselect\fP prompts the user with a dependency resolution
397screen. First however, an informative help screen is displayed.
398.sp
399The top half of this screen lists all the packages that will have
400unresolved depends or conflicts, as a result of the requested change,
401and all the packages whose installation can resolve any of these
402depends or whose removal can resolve any of the conflicts.
403The bottom half defaults to show the depends or conflicts that
404cause the currently selected package to be listed.
405.sp
406When the sublist of packages is displayed initially, \fBdselect\fP
407may have already set the requested selection status of some of the
408listed packages, in order to resolve the depends or conflicts that
409caused the dependency resolution screen to be displayed. Usually,
410it is best to follow up the suggestions made by \fBdselect\fP.
411.sp
412The listed packages' selection state may be reverted to the original
413settings, as they were before the unresolved depends or conflicts
414were created, by pressing the ‘\fBR\fP’ key.
415By pressing the ‘\fBD\fP’ key, the automatic suggestions are reset,
416but the change that caused the dependency resolution screen to be prompted
417is kept as requested.
418Finally, by pressing ‘\fBU\fP’, the selections are again set to the
419automatic suggestion values.
420.sp
421.SS Establishing the requested selections
422.sp
423By pressing \fBenter\fP, the currently displayed set of selections
424is accepted. If \fBdselect\fP detects no unresolved depends as a result
425of the requested selections, the new selections will be set.
426However, if there are any unresolved depends, \fBdselect\fP will again
427prompt the user with a dependency resolution screen.
428.sp
429To alter a set of selections that creates unresolved depends or
430conflicts and forcing \fBdselect\fP to accept it, press the ‘\fBQ\fP’
431key. This sets the selections as specified by the user,
432unconditionally. Generally, don't do this unless you've read
433the fine print.
434.sp
435The opposite effect, to back out any selections change requests and
436go back to the previous list of selections, is attained by pressing
437the ‘\fBX\fP’ or \fBescape\fP keys. By repeatedly pressing these
438keys, any possibly detrimental changes to the requested package
439selections can be backed out completely to the last established
440settings.
441.sp
442If you mistakenly establish some settings and wish to revert all the
443selections to what is currently installed on the system, press the
444‘\fBC\fP’ key.
445This is somewhat similar to using the unhold command on all packages,
446but provides a more obvious panic button in cases where the user
447pressed \fBenter\fP by accident.
448.sp
449.
450.SH EXIT STATUS
451.TP
452.B 0
453The requested command was successfully performed.
454.TP
455.B 2
456Fatal or unrecoverable error due to invalid command-line usage, or
457interactions with the system, such as accesses to the database,
458memory allocations, etc.
459.
460.SH ENVIRONMENT
461.TP
462.B HOME
463If set, \fBdselect\fP will use it as the directory from which to read the
464user specific configuration file.
465.
466.SH BUGS
467The
468.B dselect
469package selection interface is confusing to some new users.
470Reportedly, it even makes seasoned kernel developers cry.
471.sp
472The documentation is lacking.
473.sp
474There is no help option in the main menu.
475.sp
476The visible list of available packages cannot be reduced.
477.sp
478The built in access methods can no longer stand up to current quality
479standards. Use the access method provided by apt, it is not only not
480broken, it is also much more flexible than the built in access methods.
481.
482.SH SEE ALSO
483.BR dpkg (1),
484.BR apt\-get (8),
485.BR sources.list (5),
486.BR deb (5).