1APT-GET(8) APT APT-GET(8)
2
3
4
6 apt-get - APT package handling utility -- command-line interface
7
9 apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file]
10 [-t=target_release] [-a=architecture] {update | upgrade |
11 dselect-upgrade | dist-upgrade |
12 install pkg [{=pkg_version_number | /target_release}]... |
13 remove pkg... | purge pkg... |
14 source pkg [{=pkg_version_number | /target_release}]... |
15 build-dep pkg [{=pkg_version_number | /target_release}]... |
16 download pkg [{=pkg_version_number | /target_release}]... |
17 check | clean | autoclean | autoremove | {-v | --version} |
18 {-h | --help}}
19
21 apt-get is the command-line tool for handling packages, and may be
22 considered the user's "back-end" to other tools using the APT library.
23 Several "front-end" interfaces exist, such as aptitude(8), synaptic(8)
24 and wajig(1).
25
26 Unless the -h, or --help option is given, one of the commands below
27 must be present.
28
29 update
30 update is used to resynchronize the package index files from their
31 sources. The indexes of available packages are fetched from the
32 location(s) specified in /etc/apt/sources.list. For example, when
33 using a Debian archive, this command retrieves and scans the
34 Packages.gz files, so that information about new and updated
35 packages is available. An update should always be performed before
36 an upgrade or dist-upgrade. Please be aware that the overall
37 progress meter will be incorrect as the size of the package files
38 cannot be known in advance.
39
40 upgrade
41 upgrade is used to install the newest versions of all packages
42 currently installed on the system from the sources enumerated in
43 /etc/apt/sources.list. Packages currently installed with new
44 versions available are retrieved and upgraded; under no
45 circumstances are currently installed packages removed, or packages
46 not already installed retrieved and installed. New versions of
47 currently installed packages that cannot be upgraded without
48 changing the install status of another package will be left at
49 their current version. An update must be performed first so that
50 apt-get knows that new versions of packages are available.
51
52 dist-upgrade
53 dist-upgrade in addition to performing the function of upgrade,
54 also intelligently handles changing dependencies with new versions
55 of packages; apt-get has a "smart" conflict resolution system, and
56 it will attempt to upgrade the most important packages at the
57 expense of less important ones if necessary. The dist-upgrade
58 command may therefore remove some packages. The
59 /etc/apt/sources.list file contains a list of locations from which
60 to retrieve desired package files. See also apt_preferences(5) for
61 a mechanism for overriding the general settings for individual
62 packages.
63
64 dselect-upgrade
65 dselect-upgrade is used in conjunction with the traditional Debian
66 packaging front-end, dselect(1). dselect-upgrade follows the
67 changes made by dselect(1) to the Status field of available
68 packages, and performs the actions necessary to realize that state
69 (for instance, the removal of old and the installation of new
70 packages).
71
72 install
73 install is followed by one or more packages desired for
74 installation or upgrading. Each package is a package name, not a
75 fully qualified filename (for instance, in a Debian system,
76 apt-utils would be the argument provided, not
77 apt-utils_2.7.6_amd64.deb). All packages required by the package(s)
78 specified for installation will also be retrieved and installed.
79 The /etc/apt/sources.list file is used to locate the desired
80 packages. If a hyphen is appended to the package name (with no
81 intervening space), the identified package will be removed if it is
82 installed. Similarly a plus sign can be used to designate a package
83 to install. These latter features may be used to override decisions
84 made by apt-get's conflict resolution system.
85
86 A specific version of a package can be selected for installation by
87 following the package name with an equals and the version of the
88 package to select. This will cause that version to be located and
89 selected for install. Alternatively a specific distribution can be
90 selected by following the package name with a slash and the version
91 of the distribution or the Archive name (stable, testing,
92 unstable).
93
94 Both of the version selection mechanisms can downgrade packages and
95 must be used with care.
96
97 This is also the target to use if you want to upgrade one or more
98 already-installed packages without upgrading every package you have
99 on your system. Unlike the "upgrade" target, which installs the
100 newest version of all currently installed packages, "install" will
101 install the newest version of only the package(s) specified. Simply
102 provide the name of the package(s) you wish to upgrade, and if a
103 newer version is available, it (and its dependencies, as described
104 above) will be downloaded and installed.
105
106 Finally, the apt_preferences(5) mechanism allows you to create an
107 alternative installation policy for individual packages.
108
109 If no package matches the given expression and the expression
110 contains one of '.', '?' or '*' then it is assumed to be a POSIX
111 regular expression, and it is applied to all package names in the
112 database. Any matches are then installed (or removed). Note that
113 matching is done by substring so 'lo.*' matches 'how-lo' and
114 'lowest'. If this is undesired, anchor the regular expression with
115 a '^' or '$' character, or create a more specific regular
116 expression.
117
118 Fallback to regular expressions is deprecated in APT 2.0, has been
119 removed in apt(8), except for anchored expressions, and will be
120 removed from apt-get(8) in a future version. Use apt-patterns(7)
121 instead.
122
123 reinstall
124 reinstall is an alias for install --reinstall.
125
126 remove
127 remove is identical to install except that packages are removed
128 instead of installed. Note that removing a package leaves its
129 configuration files on the system. If a plus sign is appended to
130 the package name (with no intervening space), the identified
131 package will be installed instead of removed.
132
133 purge
134 purge is identical to remove except that packages are removed and
135 purged (any configuration files are deleted too).
136
137 source
138 source causes apt-get to fetch source packages. APT will examine
139 the available packages to decide which source package to fetch. It
140 will then find and download into the current directory the newest
141 available version of that source package while respecting the
142 default release, set with the option APT::Default-Release, the -t
143 option or per package with the pkg/release syntax, if possible.
144
145 The arguments are interpreted as binary and source package names.
146 See the --only-source option if you want to change that.
147
148 Source packages are tracked separately from binary packages via
149 deb-src lines in the sources.list(5) file. This means that you will
150 need to add such a line for each repository you want to get sources
151 from; otherwise you will probably get either the wrong (too old/too
152 new) source versions or none at all.
153
154 If the --compile option is specified then the package will be
155 compiled to a binary .deb using dpkg-buildpackage for the
156 architecture as defined by the --host-architecture option. If
157 --download-only is specified then the source package will not be
158 unpacked.
159
160 A specific source version can be retrieved by postfixing the source
161 name with an equals and then the version to fetch, similar to the
162 mechanism used for the package files. This enables exact matching
163 of the source package name and version, implicitly enabling the
164 APT::Get::Only-Source option.
165
166 Note that source packages are not installed and tracked in the dpkg
167 database like binary packages; they are simply downloaded to the
168 current directory, like source tarballs.
169
170 build-dep
171 build-dep causes apt-get to install/remove packages in an attempt
172 to satisfy the build dependencies for a source package. By default
173 the dependencies are satisfied to build the package natively. If
174 desired a host-architecture can be specified with the
175 --host-architecture option instead.
176
177 The arguments are interpreted as binary or source package names.
178 See the --only-source option if you want to change that.
179
180 satisfy
181 satisfy causes apt-get to satisfy the given dependency strings. The
182 dependency strings may have build profiles and architecture
183 restriction list as in build dependencies. They may optionally be
184 prefixed with "Conflicts: " to unsatisfy the dependency string.
185 Multiple strings of the same type can be specified.
186
187 Example: apt-get satisfy "foo" "Conflicts: bar" "baz (>> 1.0) | bar
188 (= 2.0), moo"
189
190 The legacy operator '</>' is not supported, use '<=/>=' instead.
191
192 check
193 check is a diagnostic tool; it updates the package cache and checks
194 for broken dependencies.
195
196 download
197 download will download the given binary package into the current
198 directory. The authenticity of the package data is ensured as
199 usual.
200
201 clean
202 clean clears out the local repository of retrieved package files.
203 It removes everything but the lock file from
204 /var/cache/apt/archives/ and /var/cache/apt/archives/partial/.
205
206 autoclean (and the auto-clean alias since 1.1)
207 Like clean, autoclean clears out the local repository of retrieved
208 package files. The difference is that it only removes package files
209 that can no longer be downloaded, and are largely useless. This
210 allows a cache to be maintained over a long period without it
211 growing out of control. The configuration option
212 APT::Clean-Installed will prevent installed packages from being
213 erased if it is set to off.
214
215 autoremove (and the auto-remove alias since 1.1)
216 autoremove is used to remove packages that were automatically
217 installed to satisfy dependencies for other packages and are now no
218 longer needed.
219
220 autopurge
221 Like autoremove, but autopurge also removes configuration files.
222 This is a shortcut for autoremove --purge.
223
224 changelog
225 changelog tries to download the changelog of a package and displays
226 it through sensible-pager. By default it displays the changelog for
227 the version that is installed. However, you can specify the same
228 options as for the install command.
229
230 indextargets
231 Displays by default a deb822 formatted listing of information about
232 all data files (aka index targets) apt-get update would download.
233 Supports a --format option to modify the output format as well as
234 accepts lines of the default output to filter the records by. The
235 command is mainly used as an interface for external tools working
236 with APT to get information as well as filenames for downloaded
237 files so they can use them as well instead of downloading them
238 again on their own. Detailed documentation is omitted here and can
239 instead be found in the file
240 /usr/share/doc/apt/acquire-additional-files.md.gz shipped by the
241 apt-doc package.
242
244 All command line options may be set using the configuration file, the
245 descriptions indicate the configuration option to set. For boolean
246 options you can override the config file by using something like
247 -f-,--no-f, -f=no or several other variations.
248
249 --no-install-recommends
250 Do not consider recommended packages as a dependency for
251 installing. Configuration Item: APT::Install-Recommends.
252
253 --install-suggests
254 Consider suggested packages as a dependency for installing.
255 Configuration Item: APT::Install-Suggests.
256
257 -d, --download-only
258 Download only; package files are only retrieved, not unpacked or
259 installed. Configuration Item: APT::Get::Download-Only.
260
261 -f, --fix-broken
262 Fix; attempt to correct a system with broken dependencies in place.
263 This option, when used with install/remove, can omit any packages
264 to permit APT to deduce a likely solution. If packages are
265 specified, these have to completely correct the problem. The option
266 is sometimes necessary when running APT for the first time; APT
267 itself does not allow broken package dependencies to exist on a
268 system. It is possible that a system's dependency structure can be
269 so corrupt as to require manual intervention (which usually means
270 using dpkg --remove to eliminate some of the offending packages).
271 Use of this option together with -m may produce an error in some
272 situations. Configuration Item: APT::Get::Fix-Broken.
273
274 -m, --ignore-missing, --fix-missing
275 Ignore missing packages; if packages cannot be retrieved or fail
276 the integrity check after retrieval (corrupted package files), hold
277 back those packages and handle the result. Use of this option
278 together with -f may produce an error in some situations. If a
279 package is selected for installation (particularly if it is
280 mentioned on the command line) and it could not be downloaded then
281 it will be silently held back. Configuration Item:
282 APT::Get::Fix-Missing.
283
284 --no-download
285 Disables downloading of packages. This is best used with
286 --ignore-missing to force APT to use only the .debs it has already
287 downloaded. Configuration Item: APT::Get::Download.
288
289 -q, --quiet
290 Quiet; produces output suitable for logging, omitting progress
291 indicators. More q's will produce more quiet up to a maximum of 2.
292 You can also use -q=# to set the quiet level, overriding the
293 configuration file. Note that quiet level 2 implies -y; you should
294 never use -qq without a no-action modifier such as -d, --print-uris
295 or -s as APT may decide to do something you did not expect.
296 Configuration Item: quiet.
297
298 -s, --simulate, --just-print, --dry-run, --recon, --no-act
299 No action; perform a simulation of events that would occur based on
300 the current system state but do not actually change the system.
301 Locking will be disabled (Debug::NoLocking) so the system state
302 could change while apt-get is running. Simulations can also be
303 executed by non-root users which might not have read access to all
304 apt configuration distorting the simulation. A notice expressing
305 this warning is also shown by default for non-root users
306 (APT::Get::Show-User-Simulation-Note). Configuration Item:
307 APT::Get::Simulate.
308
309 Simulated runs print out a series of lines, each representing a
310 dpkg operation: configure (Conf), remove (Remv) or unpack (Inst).
311 Square brackets indicate broken packages, and empty square brackets
312 indicate breaks that are of no consequence (rare).
313
314 -y, --yes, --assume-yes
315 Automatic yes to prompts; assume "yes" as answer to all prompts and
316 run non-interactively. If an undesirable situation, such as
317 changing a held package, trying to install an unauthenticated
318 package or removing an essential package occurs then apt-get will
319 abort. Configuration Item: APT::Get::Assume-Yes.
320
321 --assume-no
322 Automatic "no" to all prompts. Configuration Item:
323 APT::Get::Assume-No.
324
325 --no-show-upgraded
326 Do not show a list of all packages that are to be upgraded.
327 Configuration Item: APT::Get::Show-Upgraded.
328
329 -V, --verbose-versions
330 Show full versions for upgraded and installed packages.
331 Configuration Item: APT::Get::Show-Versions.
332
333 -a, --host-architecture
334 This option controls the architecture packages are built for by
335 apt-get source --compile and how cross-builddependencies are
336 satisfied. By default is it not set which means that the host
337 architecture is the same as the build architecture (which is
338 defined by APT::Architecture). Configuration Item:
339 APT::Get::Host-Architecture.
340
341 -P, --build-profiles
342 This option controls the activated build profiles for which a
343 source package is built by apt-get source --compile and how build
344 dependencies are satisfied. By default no build profile is active.
345 More than one build profile can be activated at a time by
346 concatenating them with a comma. Configuration Item:
347 APT::Build-Profiles.
348
349 -b, --compile, --build
350 Compile source packages after downloading them. Configuration Item:
351 APT::Get::Compile.
352
353 --ignore-hold
354 Ignore package holds; this causes apt-get to ignore a hold placed
355 on a package. This may be useful in conjunction with dist-upgrade
356 to override a large number of undesired holds. Configuration Item:
357 APT::Ignore-Hold.
358
359 --with-new-pkgs
360 Allow installing new packages when used in conjunction with
361 upgrade. This is useful if the update of an installed package
362 requires new dependencies to be installed. Instead of holding the
363 package back upgrade will upgrade the package and install the new
364 dependencies. Note that upgrade with this option will never remove
365 packages, only allow adding new ones. Configuration Item:
366 APT::Get::Upgrade-Allow-New.
367
368 --no-upgrade
369 Do not upgrade packages; when used in conjunction with install,
370 no-upgrade will prevent packages on the command line from being
371 upgraded if they are already installed. Configuration Item:
372 APT::Get::Upgrade.
373
374 --only-upgrade
375 Do not install new packages; when used in conjunction with install,
376 only-upgrade will install upgrades for already installed packages
377 only and ignore requests to install new packages. Configuration
378 Item: APT::Get::Only-Upgrade.
379
380 --allow-downgrades
381 This is a dangerous option that will cause apt to continue without
382 prompting if it is doing downgrades. It should not be used except
383 in very special situations. Using it can potentially destroy your
384 system! Configuration Item: APT::Get::allow-downgrades. Introduced
385 in APT 1.1.
386
387 --allow-remove-essential
388 Force yes; this is a dangerous option that will cause apt to
389 continue without prompting if it is removing essentials. It should
390 not be used except in very special situations. Using it can
391 potentially destroy your system! Configuration Item:
392 APT::Get::allow-remove-essential. Introduced in APT 1.1.
393
394 --allow-change-held-packages
395 Force yes; this is a dangerous option that will cause apt to
396 continue without prompting if it is changing held packages. It
397 should not be used except in very special situations. Using it can
398 potentially destroy your system! Configuration Item:
399 APT::Get::allow-change-held-packages. Introduced in APT 1.1.
400
401 --force-yes
402 Force yes; this is a dangerous option that will cause apt to
403 continue without prompting if it is doing something potentially
404 harmful. It should not be used except in very special situations.
405 Using force-yes can potentially destroy your system! Configuration
406 Item: APT::Get::force-yes. This is deprecated and replaced by
407 --allow-unauthenticated , --allow-downgrades ,
408 --allow-remove-essential , --allow-change-held-packages in 1.1.
409
410 --print-uris
411 Instead of fetching the files to install their URIs are printed.
412 Each URI will have the path, the destination file name, the size
413 and the expected MD5 hash. Note that the file name to write to will
414 not always match the file name on the remote site! This also works
415 with the source and update commands. When used with the update
416 command the MD5 and size are not included, and it is up to the user
417 to decompress any compressed files. Configuration Item:
418 APT::Get::Print-URIs.
419
420 --purge
421 Use purge instead of remove for anything that would be removed. An
422 asterisk ("*") will be displayed next to packages which are
423 scheduled to be purged. remove --purge is equivalent to the purge
424 command. Configuration Item: APT::Get::Purge.
425
426 --reinstall
427 Re-install packages that are already installed and at the newest
428 version. Configuration Item: APT::Get::ReInstall.
429
430 --list-cleanup
431 This option is on by default; use --no-list-cleanup to turn it off.
432 When it is on, apt-get will automatically manage the contents of
433 /var/lib/apt/lists to ensure that obsolete files are erased. The
434 only reason to turn it off is if you frequently change your sources
435 list. Configuration Item: APT::Get::List-Cleanup.
436
437 -S, --snapshot
438 This option controls the snapshot chosen for archives with
439 Snapshot: enable in the source entry. For example, -S
440 20220102T030405Z selects a snapshot from January 2nd, 2022 at
441 03:04:05 UTC. Configuration Item: APT::Snapshot; see also the
442 sources.list(5) manual page.
443
444 -t, --target-release, --default-release
445 This option controls the default input to the policy engine; it
446 creates a default pin at priority 990 using the specified release
447 string. This overrides the general settings in
448 /etc/apt/preferences. Specifically pinned packages are not affected
449 by the value of this option. In short, this option lets you have
450 simple control over which distribution packages will be retrieved
451 from. Some common examples might be -t '2.1*', -t unstable or -t
452 sid. Configuration Item: APT::Default-Release; see also the
453 apt_preferences(5) manual page.
454
455 --trivial-only
456 Only perform operations that are 'trivial'. Logically this can be
457 considered related to --assume-yes; where --assume-yes will answer
458 yes to any prompt, --trivial-only will answer no. Configuration
459 Item: APT::Get::Trivial-Only.
460
461 --mark-auto
462 After successful installation, mark all freshly installed packages
463 as automatically installed, which will cause each of the packages
464 to be removed when no more manually installed packages depend on
465 this package. This is equally to running apt-mark auto for all
466 installed packages. Configuration Item: APT::Get::Mark-Auto.
467
468 --no-remove
469 If any packages are to be removed apt-get immediately aborts
470 without prompting. Configuration Item: APT::Get::Remove.
471
472 --auto-remove, --autoremove
473 If the command is either install or remove, then this option acts
474 like running the autoremove command, removing unused dependency
475 packages. Configuration Item: APT::Get::AutomaticRemove.
476
477 --only-source
478 Only has meaning for the source and build-dep commands. Indicates
479 that the given source names are not to be mapped through the binary
480 table. This means that if this option is specified, these commands
481 will only accept source package names as arguments, rather than
482 accepting binary package names and looking up the corresponding
483 source package. Configuration Item: APT::Get::Only-Source.
484
485 --diff-only, --dsc-only, --tar-only
486 Download only the diff, dsc, or tar file of a source archive.
487 Configuration Item: APT::Get::Diff-Only, APT::Get::Dsc-Only, and
488 APT::Get::Tar-Only.
489
490 --arch-only
491 Only process architecture-dependent build-dependencies.
492 Configuration Item: APT::Get::Arch-Only.
493
494 --indep-only
495 Only process architecture-independent build-dependencies.
496 Configuration Item: APT::Get::Indep-Only.
497
498 --allow-unauthenticated
499 Ignore if packages can't be authenticated and don't prompt about
500 it. This can be useful while working with local repositories, but
501 is a huge security risk if data authenticity isn't ensured in
502 another way by the user itself. The usage of the Trusted option for
503 sources.list(5) entries should usually be preferred over this
504 global override. Configuration Item:
505 APT::Get::AllowUnauthenticated.
506
507 --allow-insecure-repositories
508 Allow the update command to acquire unverifiable data from
509 configured sources. APT will otherwise fail at the update command
510 for repositories without valid cryptographically signatures. See
511 also apt-secure(8) for details on the concept and the implications.
512 Configuration Item: Acquire::AllowInsecureRepositories.
513
514 --allow-releaseinfo-change
515 Allow the update command to continue downloading data from a
516 repository which changed its information of the release contained
517 in the repository indicating e.g a new major release. APT will fail
518 at the update command for such repositories until the change is
519 confirmed to ensure the user is prepared for the change. See also
520 apt-secure(8) for details on the concept and configuration.
521
522 Specialist options (--allow-releaseinfo-change-field) exist to
523 allow changes only for certain fields like origin, label, codename,
524 suite, version and defaultpin. See also apt_preferences(5).
525 Configuration Item: Acquire::AllowReleaseInfoChange.
526
527 --show-progress
528 Show user friendly progress information in the terminal window when
529 packages are installed, upgraded or removed. For a machine parsable
530 version of this data see README.progress-reporting in the apt doc
531 directory. Configuration Items: Dpkg::Progress and
532 Dpkg::Progress-Fancy.
533
534 --with-source filename
535 Adds the given file as a source for metadata. Can be repeated to
536 add multiple files. See --with-source description in apt-cache(8)
537 for further details.
538
539 -eany, --error-on=any
540 Fail the update command if any error occured, even a transient one.
541
542 -U, --update
543 Run the update command before the specified command. This is
544 supported for commands installing, removing, or upgrading packages
545 such as install, remove, safe-upgrade, full-upgrade. This can be
546 useful to ensure a command always installs the latest versions, or,
547 in combination with the --snapshot option to make sure the snapshot
548 is present when install is being run.
549
550 Caveat: Due to technical limitations, locks are acquired
551 individually for each phase, hence an install may fail to acquire
552 locks after successfully executing the update. Until this is
553 resolved, this is merely syntactic sugar for apt update && apt
554 install
555
556 -h, --help
557 Show a short usage summary.
558
559 -v, --version
560 Show the program version.
561
562 -c, --config-file
563 Configuration File; Specify a configuration file to use. The
564 program will read the default configuration file and then this
565 configuration file. If configuration settings need to be set before
566 the default configuration files are parsed specify a file with the
567 APT_CONFIG environment variable. See apt.conf(5) for syntax
568 information.
569
570 -o, --option
571 Set a Configuration Option; This will set an arbitrary
572 configuration option. The syntax is -o Foo::Bar=bar. -o and
573 --option can be used multiple times to set different options.
574
576 /etc/apt/sources.list
577 Locations to fetch packages from. Configuration Item:
578 Dir::Etc::SourceList.
579
580 /etc/apt/sources.list.d/
581 File fragments for locations to fetch packages from. Configuration
582 Item: Dir::Etc::SourceParts.
583
584 /etc/apt/apt.conf
585 APT configuration file. Configuration Item: Dir::Etc::Main.
586
587 /etc/apt/apt.conf.d/
588 APT configuration file fragments. Configuration Item:
589 Dir::Etc::Parts.
590
591 /etc/apt/preferences
592 Version preferences file. This is where you would specify
593 "pinning", i.e. a preference to get certain packages from a
594 separate source or from a different version of a distribution.
595 Configuration Item: Dir::Etc::Preferences.
596
597 /etc/apt/preferences.d/
598 File fragments for the version preferences. Configuration Item:
599 Dir::Etc::PreferencesParts.
600
601 /var/cache/apt/archives/
602 Storage area for retrieved package files. Configuration Item:
603 Dir::Cache::Archives.
604
605 /var/cache/apt/archives/partial/
606 Storage area for package files in transit. Configuration Item:
607 Dir::Cache::Archives (partial will be implicitly appended)
608
609 /var/lib/apt/lists/
610 Storage area for state information for each package resource
611 specified in sources.list(5) Configuration Item: Dir::State::Lists.
612
613 /var/lib/apt/lists/partial/
614 Storage area for state information in transit. Configuration Item:
615 Dir::State::Lists (partial will be implicitly appended)
616
618 apt-cache(8), apt-cdrom(8), dpkg(1), sources.list(5), apt.conf(5), apt-
619 patterns(7), apt-config(8), apt-secure(8), The APT User's guide in
620 /usr/share/doc/apt-doc/, apt_preferences(5), the APT Howto.
621
623 apt-get returns zero on normal operation, decimal 100 on error.
624
626 APT bug page[1]. If you wish to report a bug in APT, please see
627 /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.
628
630 Jason Gunthorpe
631
632 APT team
633
635 1. APT bug page
636 http://bugs.debian.org/src:apt
637
638
639
640APT 2.7.6 20 July 2023 APT-GET(8)