&apt-email;
&apt-product;
<!-- The last update date -->
- <date>2014-01-18T00:00:00Z</date>
+ <date>2016-09-20T00:00:00Z</date>
</refentryinfo>
<refmeta>
<refsect1><title>Description</title>
<para>
- The source list <filename>/etc/apt/sources.list</filename> and the the
+ The source list <filename>/etc/apt/sources.list</filename> and the
files contained in <filename>/etc/apt/sources.list.d/</filename> are
designed to support any number of active sources and a variety of source
- media. The files list one source per line (one line style) or contain multiline
+ media. The files list one source per line (one-line style) or contain multiline
stanzas defining one or more sources per stanza (deb822 style), with the
- most preferred source listed first. The information available from the
+ most preferred source listed first (in case a single version is
+ available from more than one source). The information available from the
configured sources is acquired by <command>apt-get update</command> (or
by an equivalent command from another APT front-end).
</para>
configuration list - in which case it will be silently ignored.</para>
</refsect1>
- <refsect1><title>one line style format</title>
+ <refsect1><title>One-Line-Style Format</title>
<para>
Files in this format have the extension <filename>.list</filename>.
Each line specifying a source starts with a type (e.g. <literal>deb-src</literal>)
included in the line after the type separated from it with a space.
If an option allows multiple values these are separated from each other
with a comma (<literal>,</literal>). An option name is separated from its
- value(s) by a equal sign (<literal>=</literal>). Multivalue options have
- also <literal>-=</literal> and <literal>+=</literal> as separator which
+ value(s) by an equals sign (<literal>=</literal>). Multivalue options also
+ have <literal>-=</literal> and <literal>+=</literal> as separators, which
instead of replacing the default with the given value(s) modify the default
value(s) to remove or include the given values.
</para><para>
This is the traditional format and supported by all apt versions.
Note that not all options as described below are supported by all apt versions.
- Note also that some older applications parsing this format on its own might not
+ Note also that some older applications parsing this format on their own might not
expect to encounter options as they were uncommon before the introduction of
multi-architecture support.
</para>
</refsect1>
- <refsect1><title>deb822 style format</title>
+ <refsect1><title>deb822-Style Format</title>
<para>
Files in this format have the extension <filename>.sources</filename>.
The format is similar in syntax to other files used by Debian and its
- derivatives, like the metadata itself apt will download from the configured
+ derivatives, such as the metadata files that apt will download from the configured
sources or the <filename>debian/control</filename> file in a Debian source package.
- Individual entries are separated by an empty line, additional empty
+ Individual entries are separated by an empty line; additional empty
lines are ignored, and a <literal>#</literal> character at the start of
the line marks the entire line as a comment. An entry can hence be
disabled by commenting out each line belonging to the stanza, but it is
Options have the same syntax as every other field: A fieldname separated by
a colon (<literal>:</literal>) and optionally spaces from its value(s).
Note especially that multiple values are separated by spaces, not by
- commas as in the one line format. Multivalue fields like <literal>Architectures</literal>
+ commas as in the one-line format. Multivalue fields like <literal>Architectures</literal>
also have <literal>Architectures-Add</literal> and <literal>Architectures-Remove</literal>
to modify the default value rather than replacing it.
</para><para>
This is a new format supported by apt itself since version 1.1. Previous
versions ignore such files with a notice message as described earlier.
- It is intended to make this format gradually the default format and
- deprecating the previously described one line style format as it is
- easier to create, extend and modify by humans and machines alike
+ It is intended to make this format gradually the default format,
+ deprecating the previously described one-line-style format, as it is
+ easier to create, extend and modify for humans and machines alike
especially if a lot of sources and/or options are involved.
Developers who are working with and/or parsing apt sources are highly
encouraged to add support for this format and to contact the APT team
to coordinate and share this work. Users can freely adopt this format
- already, but could encounter problems with software not supporting
+ already, but may encounter problems with software not supporting
the format yet.
</para>
</refsect1>
- <refsect1><title>The deb and deb-src types: General Format</title>
+ <refsect1><title>The deb and deb-src Types: General Format</title>
<para>The <literal>deb</literal> type references a typical two-level Debian
archive, <filename>distribution/component</filename>. The
<literal>distribution</literal> is generally a suite name like
<literal>stable</literal> or <literal>testing</literal> or a codename like
- <literal>&stable-codename;</literal> or <literal>&testing-codename;</literal>
+ <literal>&debian-stable-codename;</literal> or <literal>&debian-testing-codename;</literal>
while component is one of <literal>main</literal>, <literal>contrib</literal> or
<literal>non-free</literal>. The
<literal>deb-src</literal> type references a Debian distribution's source
code in the same form as the <literal>deb</literal> type.
A <literal>deb-src</literal> line is required to fetch source indexes.</para>
- <para>The format for two one line style entries using the
+ <para>The format for two one-line-style entries using the
<literal>deb</literal> and <literal>deb-src</literal> types is:</para>
<literallayout>deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]
which expands to the Debian architecture (such as <literal>amd64</literal> or
<literal>armel</literal>) used on the system. This permits architecture-independent
<filename>sources.list</filename> files to be used. In general this is only
- of interest when specifying an exact path, <literal>APT</literal> will
+ of interest when specifying an exact path; <literal>APT</literal> will
automatically generate a URI with the current architecture otherwise.</para>
- <para>Especially in the one line style format since only one distribution
+ <para>Especially in the one-line-style format since only one distribution
can be specified per line it may be necessary to have multiple lines for
the same URI, if a subset of all available distributions or components at
that location is desired. APT will sort the URI list after it has
network, followed by distant Internet hosts, for example).</para>
<para>As an example, the sources for your distribution could look like this
- in one line style format:
+ in one-line-style format:
<literallayout>&sourceslist-list-format;</literallayout> or like this in
deb822 style format:
<literallayout>&sourceslist-sources-format;</literallayout></para>
</refsect1>
<refsect1><title>The deb and deb-src types: Options</title>
- <para>Each source entry can have options specified modifying which and how
- the source is accessed and data acquired from it. Format, syntax and names
- of the options varies between the two formats one line and deb822 style
- as described, but they have both the same options available. For simplicity
- we list the deb822 fieldname and provide the one line name in brackets.
- Remember that beside setting multivalue options explicitly, there is also
+ <para>Each source entry can have options specified to modify which source
+ is accessed and how data is acquired from it. Format, syntax and names
+ of the options vary between the one-line-style and deb822-style formats
+ as described, but they both have the same options available. For simplicity
+ we list the deb822 fieldname and provide the one-line name in brackets.
+ Remember that besides setting multivalue options explicitly, there is also
the option to modify them based on the default, but we aren't listing those
names explicitly here. Unsupported options are silently ignored by all
APT versions.
<itemizedlist>
- <listitem><para><literal>Architectures</literal>
- (<literal>arch</literal>) is a multivalue option defining for
+ <listitem><para><option>Architectures</option>
+ (<option>arch</option>) is a multivalue option defining for
which architectures information should be downloaded. If this
option isn't set the default is all architectures as defined by
- the <literal>APT::Architectures</literal> config option.
+ the <option>APT::Architectures</option> config option.
</para></listitem>
- <listitem><para><literal>Languages</literal>
- (<literal>lang</literal>) is a multivalue option defining for
- which languages information like translated package
+ <listitem><para><option>Languages</option>
+ (<option>lang</option>) is a multivalue option defining for
+ which languages information such as translated package
descriptions should be downloaded. If this option isn't set
the default is all languages as defined by the
- <literal>Acquire::Languages</literal> config option.
+ <option>Acquire::Languages</option> config option.
</para></listitem>
- <listitem><para><literal>Targets</literal>
- (<literal>target</literal>) is a multivalue option defining
+ <listitem><para><option>Targets</option>
+ (<option>target</option>) is a multivalue option defining
which download targets apt will try to acquire from this
source. If not specified, the default set is defined by the
- <literal>APT::Acquire::Targets</literal> configuration scope.
+ <option>Acquire::IndexTargets</option> configuration scope
+ (targets are specified by their name in the
+ <literal>Created-By</literal> field).
+ Additionally, targets can be enabled or disabled by using the
+ <literal>Identifier</literal> field as an option with a boolean
+ value instead of using this multivalue option.
</para></listitem>
- <listitem><para><literal>Trusted</literal> (<literal>trusted</literal>)
+ <listitem><para><option>PDiffs</option> (<option>pdiffs</option>)
+ is a yes/no value which controls if APT should try to use PDiffs
+ to update old indexes instead of downloading the new indexes
+ entirely. The value of this option is ignored if the repository
+ doesn't announce the availability of PDiffs. Defaults to the
+ value of the option with the same name for a specific index file
+ defined in the <option>Acquire::IndexTargets</option> scope,
+ which itself defaults to the value of configuration option
+ <option>Acquire::PDiffs</option> which defaults to
+ <literal>yes</literal>.
+ </para></listitem>
+
+ <listitem><para><option>By-Hash</option> (<option>by-hash</option>)
+ can have the value <literal>yes</literal>, <literal>no</literal>
+ or <literal>force</literal> and controls if APT should try to
+ acquire indexes via a URI constructed from a hashsum of the
+ expected file instead of using the well-known stable filename
+ of the index. Using this can avoid hashsum mismatches, but
+ requires a supporting mirror. A <literal>yes</literal> or
+ <literal>no</literal> value activates/disables the use of this
+ feature if this source indicates support for it, while
+ <literal>force</literal> will enable the feature regardless of
+ what the source indicates. Defaults to the value of the option
+ of the same name for a specific index file defined in the
+ <option>Acquire::IndexTargets</option> scope, which itself
+ defaults to the value of configuration option
+ <option>Acquire::By-Hash</option> which defaults to
+ <literal>yes</literal>.
+ </para></listitem>
+
+ </itemizedlist>
+
+ Furthermore, there are options which if set affect
+ <emphasis>all</emphasis> sources with the same URI and Suite, so they
+ have to be set on all such entries and can not be varied between
+ different components. APT will try to detect and error out on such
+ anomalies.
+
+ <itemizedlist>
+ <listitem><para><option>Allow-Insecure</option> (<option>allow-insecure</option>),
+ <option>Allow-Weak</option> (<option>allow-weak</option>) and
+ <option>Allow-Downgrade-To-Insecure</option> (<option>allow-downgrade-to-insecure</option>)
+ are boolean values which all default to <literal>no</literal>.
+ If set to <literal>yes</literal> they circumvent parts of &apt-secure;
+ and should therefore not be used lightly!
+ </para></listitem>
+
+ <listitem><para><option>Trusted</option> (<option>trusted</option>)
is a tri-state value which defaults to APT deciding if a source
is considered trusted or if warnings should be raised before e.g.
packages are installed from this source. This option can be used
- to override this decision either with the value <literal>yes</literal>,
- which lets APT consider this source always as a trusted source
- even if it has no or fails authentication checks by disabling parts
- of &apt-secure; and should therefore only be used in a local and trusted
- context (if at all) as otherwise security is breached. The opposite
- can be achieved with the value no, which causes the source to be handled
- as untrusted even if the authentication checks passed successfully.
- The default value can't be set explicitly.
+ to override that decision. The value <literal>yes</literal> tells APT
+ always to consider this source as trusted, even if it doesn't pass
+ authentication checks. It disables parts of &apt-secure;, and should
+ therefore only be used in a local and trusted context (if at all) as
+ otherwise security is breached. The value <literal>no</literal> does
+ the opposite, causing the source to be handled as untrusted even if
+ the authentication checks passed successfully. The default value can't
+ be set explicitly.
</para></listitem>
+
+ <listitem><para><option>Signed-By</option> (<option>signed-by</option>)
+ is either an absolute path to a keyring file (has to be
+ accessible and readable for the <literal>_apt</literal> user,
+ so ensure everyone has read-permissions on the file) or one or
+ more fingerprints of keys either in the
+ <filename>trusted.gpg</filename> keyring or in the
+ keyrings in the <filename>trusted.gpg.d/</filename> directory
+ (see <command>apt-key fingerprint</command>). If the option is
+ set, only the key(s) in this keyring or only the keys with these
+ fingerprints are used for the &apt-secure; verification of this
+ repository. Defaults to the value of the option with the same name
+ if set in the previously acquired <filename>Release</filename> file.
+ Otherwise all keys in the trusted keyrings are considered valid
+ signers for this repository.
+ </para></listitem>
+
+ <listitem><para><option>Check-Valid-Until</option> (<option>check-valid-until</option>)
+ is a yes/no value which controls if APT should try to detect
+ replay attacks. A repository creator can declare a time until
+ which the data provided in the repository should be considered valid,
+ and if this time is reached, but no new data is provided, the data
+ is considered expired and an error is raised. Besides
+ increasing security, as a malicious attacker can't send old data
+ forever to prevent a user from upgrading to a new version,
+ this also helps users identify mirrors which are no longer
+ updated. However, some repositories such as historic archives
+ are not updated any more by design, so this check can be
+ disabled by setting this option to <literal>no</literal>.
+ Defaults to the value of configuration option
+ <option>Acquire::Check-Valid-Until</option> which itself
+ defaults to <literal>yes</literal>.
+ </para></listitem>
+
+ <listitem><para><option>Valid-Until-Min</option>
+ (<option>valid-until-min</option>) and
+ <option>Valid-Until-Max</option>
+ (<option>valid-until-max</option>) can be used to raise or
+ lower the time period in seconds in which the data from this
+ repository is considered valid. -Max can be especially useful
+ if the repository provides no Valid-Until field on its Release
+ file to set your own value, while -Min can be used to increase
+ the valid time on seldom updated (local) mirrors of a more
+ frequently updated but less accessible archive (which is in the
+ sources.list as well) instead of disabling the check entirely.
+ Default to the value of the configuration options
+ <option>Acquire::Min-ValidTime</option> and
+ <option>Acquire::Max-ValidTime</option> which are both unset by
+ default.
+ </para></listitem>
+
</itemizedlist>
</para>
</refsect1>
- <refsect1><title>URI specification</title>
+ <refsect1><title>URI Specification</title>
<para>The currently recognized URI types are:
<variablelist>
</variablelist>
</para>
</refsect1>
-
+
<refsect1><title>Examples</title>
<para>Uses the archive stored locally (or NFS mounted) at /home/apt/debian
for stable/main, stable/contrib, and stable/non-free.</para>
Suites: unstable
Components: main contrib non-free</literallayout>
- <para>Source line for the above</para>
+ <para>Sources specification for the above.</para>
<literallayout>deb-src file:/home/apt/debian unstable main contrib non-free</literallayout>
<literallayout>Types: deb-src
URIs: file:/home/apt/debian
Suites: unstable
Components: main contrib non-free</literallayout>
-
<para>The first line gets package information for the architectures in <literal>APT::Architectures</literal>
while the second always retrieves <literal>amd64</literal> and <literal>armel</literal>.</para>
- <literallayout>deb http://httpredir.debian.org/debian &stable-codename; main
-deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &stable-codename; main</literallayout>
+ <literallayout>deb http://deb.debian.org/debian &debian-stable-codename; main
+deb [ arch=amd64,armel ] http://deb.debian.org/debian &debian-stable-codename; main</literallayout>
<literallayout>Types: deb
-URIs: http://httpredir.debian.org/debian
-Suites: &stable-codename;
+URIs: http://deb.debian.org/debian
+Suites: &debian-stable-codename;
Components: main
Types: deb
-URIs: http://httpredir.debian.org/debian
-Suites: &stable-codename;
+URIs: http://deb.debian.org/debian
+Suites: &debian-stable-codename;
Components: main
Architectures: amd64 armel
</literallayout>
Components: main</literallayout>
<para>Uses FTP to access the archive at ftp.debian.org, under the debian
- directory, and uses only the &stable-codename;/contrib area.</para>
- <literallayout>deb ftp://ftp.debian.org/debian &stable-codename; contrib</literallayout>
+ directory, and uses only the &debian-stable-codename;/contrib area.</para>
+ <literallayout>deb ftp://ftp.debian.org/debian &debian-stable-codename; contrib</literallayout>
<literallayout>Types: deb
URIs: ftp://ftp.debian.org/debian
-Suites: &stable-codename;
+Suites: &debian-stable-codename;
Components: contrib</literallayout>
<para>Uses FTP to access the archive at ftp.debian.org, under the debian
<para>Uses HTTP to get binary packages as well as sources from the stable, testing and unstable
suites and the components main and contrib.</para>
- <literallayout>deb http://httpredir.debian.org/debian stable main contrib
-deb-src http://httpredir.debian.org/debian stable main contrib
-deb http://httpredir.debian.org/debian testing main contrib
-deb-src http://httpredir.debian.org/debian testing main contrib
-deb http://httpredir.debian.org/debian unstable main contrib
-deb-src http://httpredir.debian.org/debian unstable main contrib</literallayout>
+ <literallayout>deb http://deb.debian.org/debian stable main contrib
+deb-src http://deb.debian.org/debian stable main contrib
+deb http://deb.debian.org/debian testing main contrib
+deb-src http://deb.debian.org/debian testing main contrib
+deb http://deb.debian.org/debian unstable main contrib
+deb-src http://deb.debian.org/debian unstable main contrib</literallayout>
<literallayout>Types: deb deb-src
-URIs: http://httpredir.debian.org/debian
+URIs: http://deb.debian.org/debian
Suites: stable testing unstable
Components: main contrib
</literallayout>
</refsect1>
<refsect1><title>See Also</title>
- <para>&apt-get;, &apt-conf;
- </para>
+ <para>&apt-get;, &apt-conf;, &apt-acquire-additional-files;</para>
</refsect1>
&manbugs;