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
&dselect;,
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>. When APT is used as a
221 &dselect; method,
<literal>clean
</literal> is run automatically.
222 Those who do not use dselect will likely want to run
<literal>apt-get clean
</literal>
223 from time to time to free up disk space.
</para></listitem>
226 <varlistentry><term><option>autoclean
</option></term>
227 <listitem><para>Like
<literal>clean
</literal>,
<literal>autoclean
</literal> clears out the local
228 repository of retrieved package files. The difference is that it only
229 removes package files that can no longer be downloaded, and are largely
230 useless. This allows a cache to be maintained over a long period without
231 it growing out of control. The configuration option
232 <literal>APT::Clean-Installed
</literal> will prevent installed packages from being
233 erased if it is set to off.
</para></listitem>
236 <varlistentry><term><option>autoremove
</option></term>
237 <listitem><para><literal>autoremove
</literal> is used to remove packages that were automatically
238 installed to satisfy dependencies for other packages and are now no longer needed.
</para></listitem>
241 <varlistentry><term><option>changelog
</option></term>
242 <listitem><para><literal>changelog
</literal> downloads a package changelog and displays
243 it through
<command>sensible-pager
</command>. The server name and base
244 directory is defined in the
<literal>APT::Changelogs::Server
</literal>
245 variable (e.g.
<ulink url=
"http://packages.debian.org/changelogs">packages.debian.org/changelogs
</ulink> for
246 Debian or
<ulink url=
"http://changelogs.ubuntu.com/changelogs">changelogs.ubuntu.com/changelogs
</ulink> for
248 By default it displays the changelog for the version that is
249 installed. However, you can specify the same options as for
250 the
<option>install
</option> command.
260 <refsect1><title>options
</title>
264 <varlistentry><term><option>--no-install-recommends
</option></term>
265 <listitem><para>Do not consider recommended packages as a dependency for installing.
266 Configuration Item:
<literal>APT::Install-Recommends
</literal>.
</para></listitem>
269 <varlistentry><term><option>--install-suggests
</option></term>
270 <listitem><para>Consider suggested packages as a dependency for installing.
271 Configuration Item:
<literal>APT::Install-Suggests
</literal>.
</para></listitem>
274 <varlistentry><term><option>-d
</option></term><term><option>--download-only
</option></term>
275 <listitem><para>Download only; package files are only retrieved, not unpacked or installed.
276 Configuration Item:
<literal>APT::Get::Download-Only
</literal>.
</para></listitem>
279 <varlistentry><term><option>-f
</option></term><term><option>--fix-broken
</option></term>
280 <listitem><para>Fix; attempt to correct a system with broken dependencies in
281 place. This option, when used with install/remove, can omit any packages
282 to permit APT to deduce a likely solution. If packages are specified,
283 these have to completely correct the problem. The option is sometimes necessary when
284 running APT for the first time; APT itself does not allow broken package
285 dependencies to exist on a system. It is possible that a system's
286 dependency structure can be so corrupt as to require manual intervention
287 (which usually means using
&dselect; or
<command>dpkg --remove
</command> to eliminate some of
288 the offending packages). Use of this option together with
<option>-m
</option> may produce an
289 error in some situations.
290 Configuration Item:
<literal>APT::Get::Fix-Broken
</literal>.
</para></listitem>
293 <varlistentry><term><option>-m
</option></term><term><option>--ignore-missing
</option></term>
294 <term><option>--fix-missing
</option></term>
295 <listitem><para>Ignore missing packages; if packages cannot be retrieved or fail the
296 integrity check after retrieval (corrupted package files), hold back
297 those packages and handle the result. Use of this option together with
298 <option>-f
</option> may produce an error in some situations. If a package is
299 selected for installation (particularly if it is mentioned on the
300 command line) and it could not be downloaded then it will be silently
302 Configuration Item:
<literal>APT::Get::Fix-Missing
</literal>.
</para></listitem>
305 <varlistentry><term><option>--no-download
</option></term>
306 <listitem><para>Disables downloading of packages. This is best used with
307 <option>--ignore-missing
</option> to force APT to use only the .debs it has
309 Configuration Item:
<literal>APT::Get::Download
</literal>.
</para></listitem>
312 <varlistentry><term><option>-q
</option></term><term><option>--quiet
</option></term>
313 <listitem><para>Quiet; produces output suitable for logging, omitting progress indicators.
314 More q's will produce more quiet up to a maximum of
2. You can also use
315 <option>-q=#
</option> to set the quiet level, overriding the configuration file.
316 Note that quiet level
2 implies
<option>-y
</option>; you should never use -qq
317 without a no-action modifier such as -d, --print-uris or -s as APT may
318 decide to do something you did not expect.
319 Configuration Item:
<literal>quiet
</literal>.
</para></listitem>
322 <varlistentry><term><option>-s
</option></term>
323 <term><option>--simulate
</option></term>
324 <term><option>--just-print
</option></term>
325 <term><option>--dry-run
</option></term>
326 <term><option>--recon
</option></term>
327 <term><option>--no-act
</option></term>
328 <listitem><para>No action; perform a simulation of events that would occur but do not
329 actually change the system.
330 Configuration Item:
<literal>APT::Get::Simulate
</literal>.
</para>
332 <para>Simulated runs performed as a user will automatically deactivate locking
333 (
<literal>Debug::NoLocking
</literal>), and if the option
334 <literal>APT::Get::Show-User-Simulation-Note
</literal> is set
335 (as it is by default) a notice will also be displayed indicating that
336 this is only a simulation. Runs performed as root do not trigger either
337 NoLocking or the notice - superusers should know what they are doing
338 without further warnings from
<literal>apt-get
</literal>.
</para>
340 <para>Simulated runs print out a series of lines, each representing a
<command>dpkg
</command>
341 operation: configure (
<literal>Conf
</literal>), remove (
<literal>Remv
</literal>)
342 or unpack (
<literal>Inst
</literal>). Square brackets indicate broken packages, and
343 empty square brackets indicate breaks that are of no consequence (rare).
</para></listitem>
346 <varlistentry><term><option>-y
</option></term><term><option>--yes
</option></term>
347 <term><option>--assume-yes
</option></term>
348 <listitem><para>Automatic yes to prompts; assume "yes" as answer to all prompts and run
349 non-interactively. If an undesirable situation, such as changing a held
350 package, trying to install a unauthenticated package or removing an essential package
351 occurs then
<literal>apt-get
</literal> will abort.
352 Configuration Item:
<literal>APT::Get::Assume-Yes
</literal>.
</para></listitem>
355 <varlistentry><term><option>--assume-no
</option></term>
356 <listitem><para>Automatic "no" to all prompts.
357 Configuration Item:
<literal>APT::Get::Assume-No
</literal>.
</para></listitem>
360 <varlistentry><term><option>-u
</option></term><term><option>--show-upgraded
</option></term>
361 <listitem><para>Show upgraded packages; print out a list of all packages that are to be
363 Configuration Item:
<literal>APT::Get::Show-Upgraded
</literal>.
</para></listitem>
366 <varlistentry><term><option>-V
</option></term><term><option>--verbose-versions
</option></term>
367 <listitem><para>Show full versions for upgraded and installed packages.
368 Configuration Item:
<literal>APT::Get::Show-Versions
</literal>.
</para></listitem>
371 <varlistentry><term><option>-a
</option></term>
372 <term><option>--host-architecture
</option></term>
373 <listitem><para>This option controls the architecture packages are built for
374 by
<command>apt-get source --compile
</command> and how cross-builddependencies
375 are satisfied. By default is it not set which means that the host architecture
376 is the same as the build architecture (which is defined by
<literal>APT::Architecture
</literal>).
377 Configuration Item:
<literal>APT::Get::Host-Architecture
</literal>
381 <varlistentry><term><option>-b
</option></term><term><option>--compile
</option></term>
382 <term><option>--build
</option></term>
383 <listitem><para>Compile source packages after downloading them.
384 Configuration Item:
<literal>APT::Get::Compile
</literal>.
</para></listitem>
387 <varlistentry><term><option>--ignore-hold
</option></term>
388 <listitem><para>Ignore package holds; this causes
<command>apt-get
</command> to ignore a hold
389 placed on a package. This may be useful in conjunction with
390 <literal>dist-upgrade
</literal> to override a large number of undesired holds.
391 Configuration Item:
<literal>APT::Ignore-Hold
</literal>.
</para></listitem>
394 <varlistentry><term><option>--with-new-pkgs
</option></term>
395 <listitem><para>Allow installing new packages when used in
396 conjunction with
<literal>upgrade
</literal>. This is useful if
397 the update of a installed package requires new dependencies to be
398 installed. Instead of holding the package back
<literal>upgrade
</literal>
399 will upgrade the package and install the new dependencies. Note that
400 <literal>upgrade
</literal> with this option will never remove packages,
401 only allow adding new ones.
402 Configuration Item:
<literal>APT::Get::Upgrade-Allow-New
</literal>.
406 <varlistentry><term><option>--no-upgrade
</option></term>
407 <listitem><para>Do not upgrade packages; when used in conjunction with
<literal>install
</literal>,
408 <literal>no-upgrade
</literal> will prevent packages on the command line
409 from being upgraded if they are already installed.
410 Configuration Item:
<literal>APT::Get::Upgrade
</literal>.
</para></listitem>
413 <varlistentry><term><option>--only-upgrade
</option></term>
414 <listitem><para>Do not install new packages; when used in conjunction
415 with
<literal>install
</literal>,
<literal>only-upgrade
</literal> will
416 install upgrades for already installed packages only and ignore requests
417 to install new packages.
418 Configuration Item:
<literal>APT::Get::Only-Upgrade
</literal>.
</para></listitem>
421 <varlistentry><term><option>--force-yes
</option></term>
422 <listitem><para>Force yes; this is a dangerous option that will cause apt to continue
423 without prompting if it is doing something potentially harmful. It
424 should not be used except in very special situations. Using
425 <literal>force-yes
</literal> can potentially destroy your system!
426 Configuration Item:
<literal>APT::Get::force-yes
</literal>.
</para></listitem>
429 <varlistentry><term><option>--print-uris
</option></term>
430 <listitem><para>Instead of fetching the files to install their URIs are printed. Each
431 URI will have the path, the destination file name, the size and the expected
432 MD5 hash. Note that the file name to write to will not always match
433 the file name on the remote site! This also works with the
434 <literal>source
</literal> and
<literal>update
</literal> commands. When used with the
435 <literal>update
</literal> command the MD5 and size are not included, and it is
436 up to the user to decompress any compressed files.
437 Configuration Item:
<literal>APT::Get::Print-URIs
</literal>.
</para></listitem>
440 <varlistentry><term><option>--purge
</option></term>
441 <listitem><para>Use purge instead of remove for anything that would be removed.
442 An asterisk ("*") will be displayed next to packages which are
443 scheduled to be purged.
<option>remove --purge
</option> is equivalent to the
444 <option>purge
</option> command.
445 Configuration Item:
<literal>APT::Get::Purge
</literal>.
</para></listitem>
448 <varlistentry><term><option>--reinstall
</option></term>
449 <listitem><para>Re-install packages that are already installed and at the newest version.
450 Configuration Item:
<literal>APT::Get::ReInstall
</literal>.
</para></listitem>
453 <varlistentry><term><option>--list-cleanup
</option></term>
454 <listitem><para>This option is on by default; use
<literal>--no-list-cleanup
</literal> to turn
455 it off. When it is on,
<command>apt-get
</command> will automatically manage the contents
456 of
<filename>&statedir;/lists
</filename> to ensure that obsolete files are erased.
457 The only reason to turn it off is if you frequently change your sources list.
458 Configuration Item:
<literal>APT::Get::List-Cleanup
</literal>.
</para></listitem>
461 <varlistentry><term><option>-t
</option></term>
462 <term><option>--target-release
</option></term>
463 <term><option>--default-release
</option></term>
464 <listitem><para>This option controls the default input to the policy engine; it creates
465 a default pin at priority
990 using the specified release string.
466 This overrides the general settings in
<filename>/etc/apt/preferences
</filename>.
467 Specifically pinned packages are not affected by the value
468 of this option. In short, this option
469 lets you have simple control over which distribution packages will be
470 retrieved from. Some common examples might be
471 <option>-t '
2.1*'
</option>,
<option>-t unstable
</option>
472 or
<option>-t sid
</option>.
473 Configuration Item:
<literal>APT::Default-Release
</literal>;
474 see also the &apt-preferences; manual page.
</para></listitem>
477 <varlistentry><term><option>--trivial-only
</option></term>
479 Only perform operations that are 'trivial'. Logically this can be considered
480 related to
<option>--assume-yes
</option>; where
<option>--assume-yes
</option> will answer
481 yes to any prompt,
<option>--trivial-only
</option> will answer no.
482 Configuration Item:
<literal>APT::Get::Trivial-Only
</literal>.
</para></listitem>
485 <varlistentry><term><option>--no-remove
</option></term>
486 <listitem><para>If any packages are to be removed apt-get immediately aborts without
488 Configuration Item:
<literal>APT::Get::Remove
</literal>.
</para></listitem>
491 <varlistentry><term><option>--auto-remove
</option></term>
492 <listitem><para>If the command is either
<literal>install
</literal> or
<literal>remove
</literal>,
493 then this option acts like running the
<literal>autoremove
</literal> command, removing unused
494 dependency packages. Configuration Item:
<literal>APT::Get::AutomaticRemove
</literal>.
498 <varlistentry><term><option>--only-source
</option></term>
499 <listitem><para>Only has meaning for the
500 <literal>source
</literal> and
<literal>build-dep
</literal>
501 commands. Indicates that the given source names are not to be
502 mapped through the binary table. This means that if this option
503 is specified, these commands will only accept source package
504 names as arguments, rather than accepting binary package names
505 and looking up the corresponding source package. Configuration
506 Item:
<literal>APT::Get::Only-Source
</literal>.
</para></listitem>
509 <varlistentry><term><option>--diff-only
</option></term><term><option>--dsc-only
</option></term><term><option>--tar-only
</option></term>
510 <listitem><para>Download only the diff, dsc, or tar file of a source archive.
511 Configuration Item:
<literal>APT::Get::Diff-Only
</literal>,
<literal>APT::Get::Dsc-Only
</literal>, and
512 <literal>APT::Get::Tar-Only
</literal>.
</para></listitem>
515 <varlistentry><term><option>--arch-only
</option></term>
516 <listitem><para>Only process architecture-dependent build-dependencies.
517 Configuration Item:
<literal>APT::Get::Arch-Only
</literal>.
</para></listitem>
520 <varlistentry><term><option>--allow-unauthenticated
</option></term>
521 <listitem><para>Ignore if packages can't be authenticated and don't prompt about it.
522 This is useful for tools like pbuilder.
523 Configuration Item:
<literal>APT::Get::AllowUnauthenticated
</literal>.
</para></listitem>
526 <varlistentry><term><option>--show-progress
</option></term>
527 <listitem><para>Show user friendly progress information in the
528 terminal window when packages are installed, upgraded or
529 removed. For a machine parsable version of this data see
530 README.progress-reporting in the apt doc directory.
531 Configuration Item:
<literal>DpkgPM::Progress
</literal> and
<literal>Dpkg::Progress-Fancy
</literal>.
</para></listitem>
540 <refsect1><title>Files
</title>
550 <refsect1><title>See Also
</title>
551 <para>&apt-cache;, &apt-cdrom;,
&dpkg;,
&dselect;, &sources-list;,
552 &apt-conf;, &apt-config;, &apt-secure;,
553 The APT User's guide in
&guidesdir;, &apt-preferences;, the APT Howto.
</para>
556 <refsect1><title>Diagnostics
</title>
557 <para><command>apt-get
</command> returns zero on normal operation, decimal
100 on error.
</para>