1 <?xml version=
"1.0" encoding=
"utf-8" standalone=
"no"?>
2 <!DOCTYPE refentry PUBLIC
"-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
5 <!ENTITY % aptent SYSTEM
"apt.ent">
8 <!ENTITY % aptverbatiment SYSTEM
"apt-verbatim.ent">
11 <!ENTITY % aptvendor SYSTEM
"apt-vendor.ent">
18 &apt-author.jgunthorpe;
22 <!-- The last update date -->
23 <date>2012-
06-
09T00:
00:
00Z
</date>
27 <refentrytitle>apt-get
</refentrytitle>
28 <manvolnum>8</manvolnum>
29 <refmiscinfo class=
"manual">APT
</refmiscinfo>
32 <!-- Man page title -->
34 <refname>apt-get
</refname>
35 <refpurpose>APT package handling utility -- command-line interface
</refpurpose>
38 &synopsis-command-apt-get;
40 <refsect1><title>Description
</title>
41 <para><command>apt-get
</command> is the command-line tool for handling packages, and may be
42 considered the user's "back-end" to other tools using the APT
43 library. Several "front-end" interfaces exist, such as
44 &aptitude;,
&synaptic; and
&wajig;.
</para>
46 <para>Unless the
<option>-h
</option>, or
<option>--help
</option> option is given, one of the
47 commands below must be present.
</para>
50 <varlistentry><term><option>update
</option></term>
51 <listitem><para><literal>update
</literal> is used to resynchronize the package index files from
52 their sources. The indexes of available packages are fetched from the
53 location(s) specified in
<filename>/etc/apt/sources.list
</filename>.
54 For example, when using a Debian archive, this command retrieves and
55 scans the
<filename>Packages.gz
</filename> files, so that information about new
56 and updated packages is available. An
<literal>update
</literal> should always be
57 performed before an
<literal>upgrade
</literal> or
<literal>dist-upgrade
</literal>. Please
58 be aware that the overall progress meter will be incorrect as the size
59 of the package files cannot be known in advance.
</para></listitem>
62 <varlistentry><term><option>upgrade
</option></term>
63 <listitem><para><literal>upgrade
</literal> is used to install the newest versions of all packages
64 currently installed on the system from the sources enumerated in
65 <filename>/etc/apt/sources.list
</filename>. Packages currently installed with
66 new versions available are retrieved and upgraded; under no circumstances
67 are currently installed packages removed, or packages not already installed
68 retrieved and installed. New versions of currently installed packages that
69 cannot be upgraded without changing the install status of another package
70 will be left at their current version. An
<literal>update
</literal> must be
71 performed first so that
<command>apt-get
</command> knows that new versions of packages are
72 available.
</para></listitem>
75 <varlistentry><term><option>dist-upgrade
</option></term>
76 <listitem><para><literal>dist-upgrade
</literal> in addition to performing the function of
77 <literal>upgrade
</literal>, also intelligently handles changing dependencies
78 with new versions of packages;
<command>apt-get
</command> has a "smart" conflict
79 resolution system, and it will attempt to upgrade the most important
80 packages at the expense of less important ones if necessary.
81 The
<literal>dist-upgrade
</literal> command may therefore remove some packages.
82 The
<filename>/etc/apt/sources.list
</filename> file contains a list of locations
83 from which to retrieve desired package files.
84 See also &apt-preferences; for a mechanism for
85 overriding the general settings for individual packages.
</para></listitem>
88 <varlistentry><term><option>dselect-upgrade
</option></term>
89 <listitem><para><literal>dselect-upgrade
</literal>
90 is used in conjunction with the traditional Debian packaging
91 front-end,
&dselect;.
<literal>dselect-upgrade
</literal>
92 follows the changes made by
&dselect; to the
<literal>Status
</literal>
93 field of available packages, and performs the actions necessary to realize
94 that state (for instance, the removal of old and the installation of new
95 packages).
</para></listitem>
98 <varlistentry><term><option>install
</option></term>
100 <para><literal>install
</literal> is followed by one or more
101 packages desired for installation or upgrading.
102 Each package is a package name, not a fully qualified
103 filename (for instance, in a Debian system,
104 <package>apt-utils
</package> would be the argument provided, not
105 <filename>apt-utils_&apt-product-version;_amd64.deb
</filename>). All packages required
106 by the package(s) specified for installation will also
107 be retrieved and installed.
108 The
<filename>/etc/apt/sources.list
</filename> file is
109 used to locate the desired packages. If a hyphen is
110 appended to the package name (with no intervening space),
111 the identified package will be removed if it is installed.
112 Similarly a plus sign can be used to designate a
113 package to install. These latter features may be used
114 to override decisions made by apt-get's conflict
118 <para>A specific version of a package can be selected for installation by
119 following the package name with an equals and the version of the package
120 to select. This will cause that version to be located and selected for
121 install. Alternatively a specific distribution can be selected by
122 following the package name with a slash and the version of the
123 distribution or the Archive name (stable, testing, unstable).
</para>
125 <para>Both of the version selection mechanisms can downgrade packages and must
126 be used with care.
</para>
128 <para>This is also the target to use if you want to upgrade one or
129 more already-installed packages without upgrading every package
130 you have on your system. Unlike the "upgrade" target, which
131 installs the newest version of all currently installed packages,
132 "install" will install the newest version of only the package(s)
133 specified. Simply provide the name of the package(s) you wish
134 to upgrade, and if a newer version is available, it (and its
135 dependencies, as described above) will be downloaded and
139 <para>Finally, the &apt-preferences; mechanism allows you to
140 create an alternative installation policy for
141 individual packages.
</para>
143 <para>If no package matches the given expression and the expression contains one
144 of '.', '?' or '*' then it is assumed to be a POSIX regular expression,
146 to all package names in the database. Any matches are then installed (or
147 removed). Note that matching is done by substring so 'lo.*' matches 'how-lo'
148 and 'lowest'. If this is undesired, anchor the regular expression
149 with a '^' or '$' character, or create a more specific regular expression.
</para></listitem>
152 <varlistentry><term><option>remove
</option></term>
153 <listitem><para><literal>remove
</literal> is identical to
<literal>install
</literal> except that packages are
154 removed instead of installed. Note that removing a package leaves its
155 configuration files on the system. If a plus sign is appended to the package
156 name (with no intervening space), the identified package will be
157 installed instead of removed.
</para></listitem>
160 <varlistentry><term><option>purge
</option></term>
161 <listitem><para><literal>purge
</literal> is identical to
<literal>remove
</literal> except that packages are
162 removed and purged (any configuration files are deleted too).
</para></listitem>
165 <varlistentry><term><option>source
</option></term>
166 <listitem><para><literal>source
</literal> causes
<command>apt-get
</command> to fetch source packages. APT
167 will examine the available packages to decide which source package to
168 fetch. It will then find and download into the current directory the
169 newest available version of that source package while respecting the
170 default release, set with the option
<literal>APT::Default-Release
</literal>,
171 the
<option>-t
</option> option or per package with the
172 <literal>pkg/release
</literal> syntax, if possible.
</para>
174 <para>Source packages are tracked separately
175 from binary packages via
<literal>deb-src
</literal> lines
176 in the &sources-list; file. This means that you will need to add such a line
177 for each repository you want to get sources from; otherwise you will probably
178 get either the wrong (too old/too new) source versions or none at all.
</para>
180 <para>If the
<option>--compile
</option> option is specified
181 then the package will be compiled to a binary .deb using
182 <command>dpkg-buildpackage
</command> for the architecture as
183 defined by the
<command>--host-architecture
</command> option.
184 If
<option>--download-only
</option> is specified then the source package
185 will not be unpacked.
</para>
187 <para>A specific source version can be retrieved by postfixing the source name
188 with an equals and then the version to fetch, similar to the mechanism
189 used for the package files. This enables exact matching of the source
190 package name and version, implicitly enabling the
191 <literal>APT::Get::Only-Source
</literal> option.
</para>
193 <para>Note that source packages are not installed and tracked in the
194 <command>dpkg
</command> database like binary packages; they are simply downloaded
195 to the current directory, like source tarballs.
</para></listitem>
198 <varlistentry><term><option>build-dep
</option></term>
199 <listitem><para><literal>build-dep
</literal> causes apt-get to install/remove packages in an
200 attempt to satisfy the build dependencies for a source package. By default the dependencies are
201 satisfied to build the package natively. If desired a host-architecture can be specified
202 with the
<option>--host-architecture
</option> option instead.
</para></listitem>
205 <varlistentry><term><option>check
</option></term>
206 <listitem><para><literal>check
</literal> is a diagnostic tool; it updates the package cache and checks
207 for broken dependencies.
</para></listitem>
210 <varlistentry><term><option>download
</option></term>
211 <listitem><para><literal>download
</literal> will download the given
212 binary package into the current directory.
216 <varlistentry><term><option>clean
</option></term>
217 <listitem><para><literal>clean
</literal> clears out the local repository of retrieved package
218 files. It removes everything but the lock file from
219 <filename>&cachedir;/archives/
</filename> and
220 <filename>&cachedir;/archives/partial/
</filename>.
</para></listitem>
223 <varlistentry><term><option>autoclean
</option></term>
224 <listitem><para>Like
<literal>clean
</literal>,
<literal>autoclean
</literal> clears out the local
225 repository of retrieved package files. The difference is that it only
226 removes package files that can no longer be downloaded, and are largely
227 useless. This allows a cache to be maintained over a long period without
228 it growing out of control. The configuration option
229 <literal>APT::Clean-Installed
</literal> will prevent installed packages from being
230 erased if it is set to off.
</para></listitem>
233 <varlistentry><term><option>autoremove
</option></term>
234 <listitem><para><literal>autoremove
</literal> is used to remove packages that were automatically
235 installed to satisfy dependencies for other packages and are now no longer needed.
</para></listitem>
238 <varlistentry><term><option>changelog
</option></term>
239 <listitem><para><literal>changelog
</literal> downloads a package changelog and displays
240 it through
<command>sensible-pager
</command>. The server name and base
241 directory is defined in the
<literal>APT::Changelogs::Server
</literal>
242 variable (e.g.
<ulink url=
"http://packages.debian.org/changelogs">packages.debian.org/changelogs
</ulink> for
243 Debian or
<ulink url=
"http://changelogs.ubuntu.com/changelogs">changelogs.ubuntu.com/changelogs
</ulink> for
245 By default it displays the changelog for the version that is
246 installed. However, you can specify the same options as for
247 the
<option>install
</option> command.
257 <refsect1><title>options
</title>
261 <varlistentry><term><option>--no-install-recommends
</option></term>
262 <listitem><para>Do not consider recommended packages as a dependency for installing.
263 Configuration Item:
<literal>APT::Install-Recommends
</literal>.
</para></listitem>
266 <varlistentry><term><option>--install-suggests
</option></term>
267 <listitem><para>Consider suggested packages as a dependency for installing.
268 Configuration Item:
<literal>APT::Install-Suggests
</literal>.
</para></listitem>
271 <varlistentry><term><option>-d
</option></term><term><option>--download-only
</option></term>
272 <listitem><para>Download only; package files are only retrieved, not unpacked or installed.
273 Configuration Item:
<literal>APT::Get::Download-Only
</literal>.
</para></listitem>
276 <varlistentry><term><option>-f
</option></term><term><option>--fix-broken
</option></term>
277 <listitem><para>Fix; attempt to correct a system with broken dependencies in
278 place. This option, when used with install/remove, can omit any packages
279 to permit APT to deduce a likely solution. If packages are specified,
280 these have to completely correct the problem. The option is sometimes necessary when
281 running APT for the first time; APT itself does not allow broken package
282 dependencies to exist on a system. It is possible that a system's
283 dependency structure can be so corrupt as to require manual intervention
284 (which usually means using
<command>dpkg --remove
</command> to eliminate some of
285 the offending packages). Use of this option together with
<option>-m
</option> may produce an
286 error in some situations.
287 Configuration Item:
<literal>APT::Get::Fix-Broken
</literal>.
</para></listitem>
290 <varlistentry><term><option>-m
</option></term><term><option>--ignore-missing
</option></term>
291 <term><option>--fix-missing
</option></term>
292 <listitem><para>Ignore missing packages; if packages cannot be retrieved or fail the
293 integrity check after retrieval (corrupted package files), hold back
294 those packages and handle the result. Use of this option together with
295 <option>-f
</option> may produce an error in some situations. If a package is
296 selected for installation (particularly if it is mentioned on the
297 command line) and it could not be downloaded then it will be silently
299 Configuration Item:
<literal>APT::Get::Fix-Missing
</literal>.
</para></listitem>
302 <varlistentry><term><option>--no-download
</option></term>
303 <listitem><para>Disables downloading of packages. This is best used with
304 <option>--ignore-missing
</option> to force APT to use only the .debs it has
306 Configuration Item:
<literal>APT::Get::Download
</literal>.
</para></listitem>
309 <varlistentry><term><option>-q
</option></term><term><option>--quiet
</option></term>
310 <listitem><para>Quiet; produces output suitable for logging, omitting progress indicators.
311 More q's will produce more quiet up to a maximum of
2. You can also use
312 <option>-q=#
</option> to set the quiet level, overriding the configuration file.
313 Note that quiet level
2 implies
<option>-y
</option>; you should never use -qq
314 without a no-action modifier such as -d, --print-uris or -s as APT may
315 decide to do something you did not expect.
316 Configuration Item:
<literal>quiet
</literal>.
</para></listitem>
319 <varlistentry><term><option>-s
</option></term>
320 <term><option>--simulate
</option></term>
321 <term><option>--just-print
</option></term>
322 <term><option>--dry-run
</option></term>
323 <term><option>--recon
</option></term>
324 <term><option>--no-act
</option></term>
325 <listitem><para>No action; perform a simulation of events that would occur but do not
326 actually change the system.
327 Configuration Item:
<literal>APT::Get::Simulate
</literal>.
</para>
329 <para>Simulated runs performed as a user will automatically deactivate locking
330 (
<literal>Debug::NoLocking
</literal>), and if the option
331 <literal>APT::Get::Show-User-Simulation-Note
</literal> is set
332 (as it is by default) a notice will also be displayed indicating that
333 this is only a simulation. Runs performed as root do not trigger either
334 NoLocking or the notice - superusers should know what they are doing
335 without further warnings from
<literal>apt-get
</literal>.
</para>
337 <para>Simulated runs print out a series of lines, each representing a
<command>dpkg
</command>
338 operation: configure (
<literal>Conf
</literal>), remove (
<literal>Remv
</literal>)
339 or unpack (
<literal>Inst
</literal>). Square brackets indicate broken packages, and
340 empty square brackets indicate breaks that are of no consequence (rare).
</para></listitem>
343 <varlistentry><term><option>-y
</option></term><term><option>--yes
</option></term>
344 <term><option>--assume-yes
</option></term>
345 <listitem><para>Automatic yes to prompts; assume "yes" as answer to all prompts and run
346 non-interactively. If an undesirable situation, such as changing a held
347 package, trying to install a unauthenticated package or removing an essential package
348 occurs then
<literal>apt-get
</literal> will abort.
349 Configuration Item:
<literal>APT::Get::Assume-Yes
</literal>.
</para></listitem>
352 <varlistentry><term><option>--assume-no
</option></term>
353 <listitem><para>Automatic "no" to all prompts.
354 Configuration Item:
<literal>APT::Get::Assume-No
</literal>.
</para></listitem>
357 <varlistentry><term><option>-u
</option></term><term><option>--show-upgraded
</option></term>
358 <listitem><para>Show upgraded packages; print out a list of all packages that are to be
360 Configuration Item:
<literal>APT::Get::Show-Upgraded
</literal>.
</para></listitem>
363 <varlistentry><term><option>-V
</option></term><term><option>--verbose-versions
</option></term>
364 <listitem><para>Show full versions for upgraded and installed packages.
365 Configuration Item:
<literal>APT::Get::Show-Versions
</literal>.
</para></listitem>
368 <varlistentry><term><option>-a
</option></term>
369 <term><option>--host-architecture
</option></term>
370 <listitem><para>This option controls the architecture packages are built for
371 by
<command>apt-get source --compile
</command> and how cross-builddependencies
372 are satisfied. By default is it not set which means that the host architecture
373 is the same as the build architecture (which is defined by
<literal>APT::Architecture
</literal>).
374 Configuration Item:
<literal>APT::Get::Host-Architecture
</literal>.
378 <varlistentry><term><option>-P
</option></term>
379 <term><option>--build-profiles
</option></term>
380 <listitem><para>This option controls the activated build profiles for which
381 a source package is built by
<command>apt-get source --compile
</command> and
382 how build dependencies are satisfied. By default no build profile is active.
383 More than one build profile can be activated at a time by concatenating them
385 Configuration Item:
<literal>APT::Build-Profiles
</literal>.
389 <varlistentry><term><option>-b
</option></term><term><option>--compile
</option></term>
390 <term><option>--build
</option></term>
391 <listitem><para>Compile source packages after downloading them.
392 Configuration Item:
<literal>APT::Get::Compile
</literal>.
</para></listitem>
395 <varlistentry><term><option>--ignore-hold
</option></term>
396 <listitem><para>Ignore package holds; this causes
<command>apt-get
</command> to ignore a hold
397 placed on a package. This may be useful in conjunction with
398 <literal>dist-upgrade
</literal> to override a large number of undesired holds.
399 Configuration Item:
<literal>APT::Ignore-Hold
</literal>.
</para></listitem>
402 <varlistentry><term><option>--with-new-pkgs
</option></term>
403 <listitem><para>Allow installing new packages when used in
404 conjunction with
<literal>upgrade
</literal>. This is useful if
405 the update of a installed package requires new dependencies to be
406 installed. Instead of holding the package back
<literal>upgrade
</literal>
407 will upgrade the package and install the new dependencies. Note that
408 <literal>upgrade
</literal> with this option will never remove packages,
409 only allow adding new ones.
410 Configuration Item:
<literal>APT::Get::Upgrade-Allow-New
</literal>.
414 <varlistentry><term><option>--no-upgrade
</option></term>
415 <listitem><para>Do not upgrade packages; when used in conjunction with
<literal>install
</literal>,
416 <literal>no-upgrade
</literal> will prevent packages on the command line
417 from being upgraded if they are already installed.
418 Configuration Item:
<literal>APT::Get::Upgrade
</literal>.
</para></listitem>
421 <varlistentry><term><option>--only-upgrade
</option></term>
422 <listitem><para>Do not install new packages; when used in conjunction
423 with
<literal>install
</literal>,
<literal>only-upgrade
</literal> will
424 install upgrades for already installed packages only and ignore requests
425 to install new packages.
426 Configuration Item:
<literal>APT::Get::Only-Upgrade
</literal>.
</para></listitem>
429 <varlistentry><term><option>--force-yes
</option></term>
430 <listitem><para>Force yes; this is a dangerous option that will cause apt to continue
431 without prompting if it is doing something potentially harmful. It
432 should not be used except in very special situations. Using
433 <literal>force-yes
</literal> can potentially destroy your system!
434 Configuration Item:
<literal>APT::Get::force-yes
</literal>.
</para></listitem>
437 <varlistentry><term><option>--print-uris
</option></term>
438 <listitem><para>Instead of fetching the files to install their URIs are printed. Each
439 URI will have the path, the destination file name, the size and the expected
440 MD5 hash. Note that the file name to write to will not always match
441 the file name on the remote site! This also works with the
442 <literal>source
</literal> and
<literal>update
</literal> commands. When used with the
443 <literal>update
</literal> command the MD5 and size are not included, and it is
444 up to the user to decompress any compressed files.
445 Configuration Item:
<literal>APT::Get::Print-URIs
</literal>.
</para></listitem>
448 <varlistentry><term><option>--purge
</option></term>
449 <listitem><para>Use purge instead of remove for anything that would be removed.
450 An asterisk ("*") will be displayed next to packages which are
451 scheduled to be purged.
<option>remove --purge
</option> is equivalent to the
452 <option>purge
</option> command.
453 Configuration Item:
<literal>APT::Get::Purge
</literal>.
</para></listitem>
456 <varlistentry><term><option>--reinstall
</option></term>
457 <listitem><para>Re-install packages that are already installed and at the newest version.
458 Configuration Item:
<literal>APT::Get::ReInstall
</literal>.
</para></listitem>
461 <varlistentry><term><option>--list-cleanup
</option></term>
462 <listitem><para>This option is on by default; use
<literal>--no-list-cleanup
</literal> to turn
463 it off. When it is on,
<command>apt-get
</command> will automatically manage the contents
464 of
<filename>&statedir;/lists
</filename> to ensure that obsolete files are erased.
465 The only reason to turn it off is if you frequently change your sources list.
466 Configuration Item:
<literal>APT::Get::List-Cleanup
</literal>.
</para></listitem>
469 <varlistentry><term><option>-t
</option></term>
470 <term><option>--target-release
</option></term>
471 <term><option>--default-release
</option></term>
472 <listitem><para>This option controls the default input to the policy engine; it creates
473 a default pin at priority
990 using the specified release string.
474 This overrides the general settings in
<filename>/etc/apt/preferences
</filename>.
475 Specifically pinned packages are not affected by the value
476 of this option. In short, this option
477 lets you have simple control over which distribution packages will be
478 retrieved from. Some common examples might be
479 <option>-t '
2.1*'
</option>,
<option>-t unstable
</option>
480 or
<option>-t sid
</option>.
481 Configuration Item:
<literal>APT::Default-Release
</literal>;
482 see also the &apt-preferences; manual page.
</para></listitem>
485 <varlistentry><term><option>--trivial-only
</option></term>
487 Only perform operations that are 'trivial'. Logically this can be considered
488 related to
<option>--assume-yes
</option>; where
<option>--assume-yes
</option> will answer
489 yes to any prompt,
<option>--trivial-only
</option> will answer no.
490 Configuration Item:
<literal>APT::Get::Trivial-Only
</literal>.
</para></listitem>
493 <varlistentry><term><option>--no-remove
</option></term>
494 <listitem><para>If any packages are to be removed apt-get immediately aborts without
496 Configuration Item:
<literal>APT::Get::Remove
</literal>.
</para></listitem>
499 <varlistentry><term><option>--auto-remove
</option></term>
500 <listitem><para>If the command is either
<literal>install
</literal> or
<literal>remove
</literal>,
501 then this option acts like running the
<literal>autoremove
</literal> command, removing unused
502 dependency packages. Configuration Item:
<literal>APT::Get::AutomaticRemove
</literal>.
506 <varlistentry><term><option>--only-source
</option></term>
507 <listitem><para>Only has meaning for the
508 <literal>source
</literal> and
<literal>build-dep
</literal>
509 commands. Indicates that the given source names are not to be
510 mapped through the binary table. This means that if this option
511 is specified, these commands will only accept source package
512 names as arguments, rather than accepting binary package names
513 and looking up the corresponding source package. Configuration
514 Item:
<literal>APT::Get::Only-Source
</literal>.
</para></listitem>
517 <varlistentry><term><option>--diff-only
</option></term><term><option>--dsc-only
</option></term><term><option>--tar-only
</option></term>
518 <listitem><para>Download only the diff, dsc, or tar file of a source archive.
519 Configuration Item:
<literal>APT::Get::Diff-Only
</literal>,
<literal>APT::Get::Dsc-Only
</literal>, and
520 <literal>APT::Get::Tar-Only
</literal>.
</para></listitem>
523 <varlistentry><term><option>--arch-only
</option></term>
524 <listitem><para>Only process architecture-dependent build-dependencies.
525 Configuration Item:
<literal>APT::Get::Arch-Only
</literal>.
</para></listitem>
528 <varlistentry><term><option>--allow-unauthenticated
</option></term>
529 <listitem><para>Ignore if packages can't be authenticated and don't prompt about it.
530 This is useful for tools like pbuilder.
531 Configuration Item:
<literal>APT::Get::AllowUnauthenticated
</literal>.
</para></listitem>
534 <varlistentry><term><option>--show-progress
</option></term>
535 <listitem><para>Show user friendly progress information in the
536 terminal window when packages are installed, upgraded or
537 removed. For a machine parsable version of this data see
538 README.progress-reporting in the apt doc directory.
539 Configuration Item:
<literal>DpkgPM::Progress
</literal> and
<literal>Dpkg::Progress-Fancy
</literal>.
</para></listitem>
548 <refsect1><title>Files
</title>
558 <refsect1><title>See Also
</title>
559 <para>&apt-cache;, &apt-cdrom;,
&dpkg;, &sources-list;,
560 &apt-conf;, &apt-config;, &apt-secure;,
561 The APT User's guide in
&guidesdir;, &apt-preferences;, the APT Howto.
</para>
564 <refsect1><title>Diagnostics
</title>
565 <para><command>apt-get
</command> returns zero on normal operation, decimal
100 on error.
</para>