]>
Commit | Line | Data |
---|---|---|
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" [ | |
4 | <!ENTITY % aptent SYSTEM "apt.ent"> %aptent; | |
5 | <!ENTITY % aptverbatiment SYSTEM "apt-verbatim.ent"> %aptverbatiment; | |
6 | <!ENTITY % aptvendor SYSTEM "apt-vendor.ent"> %aptvendor; | |
7 | ]> | |
8 | ||
9 | <refentry> | |
10 | ||
11 | <refentryinfo> | |
12 | &apt-author.jgunthorpe; | |
13 | &apt-author.team; | |
14 | &apt-email; | |
15 | &apt-product; | |
16 | <!-- The last update date --> | |
17 | <date>2014-01-18T00:00:00Z</date> | |
18 | </refentryinfo> | |
19 | ||
20 | <refmeta> | |
21 | <refentrytitle>sources.list</refentrytitle> | |
22 | <manvolnum>5</manvolnum> | |
23 | <refmiscinfo class="manual">APT</refmiscinfo> | |
24 | </refmeta> | |
25 | ||
26 | <!-- Man page title --> | |
27 | <refnamediv> | |
28 | <refname>sources.list</refname> | |
29 | <refpurpose>List of configured APT data sources</refpurpose> | |
30 | </refnamediv> | |
31 | ||
32 | <refsect1><title>Description</title> | |
33 | <para> | |
34 | The source list <filename>/etc/apt/sources.list</filename> and the the | |
35 | files contained in <filename>/etc/apt/sources.list.d/</filename> are | |
36 | designed to support any number of active sources and a variety of source | |
37 | media. The files list one source per line (one line style) or contain multiline | |
38 | stanzas defining one or more sources per stanza (deb822 style), with the | |
39 | most preferred source listed first (in case a single version is available from more than one source). The information available from the | |
40 | configured sources is acquired by <command>apt-get update</command> (or | |
41 | by an equivalent command from another APT front-end). | |
42 | </para> | |
43 | </refsect1> | |
44 | ||
45 | <refsect1><title>sources.list.d</title> | |
46 | <para>The <filename>/etc/apt/sources.list.d</filename> directory provides | |
47 | a way to add sources.list entries in separate files. | |
48 | Two different file formats are allowed as described in the next two sections. | |
49 | Filenames need to have either the extension <filename>.list</filename> or | |
50 | <filename>.sources</filename> depending on the contained format. | |
51 | The filenames may only contain letters (a-z and A-Z), | |
52 | digits (0-9), underscore (_), hyphen (-) and period (.) characters. | |
53 | Otherwise APT will print a notice that it has ignored a file, unless that | |
54 | file matches a pattern in the <literal>Dir::Ignore-Files-Silently</literal> | |
55 | configuration list - in which case it will be silently ignored.</para> | |
56 | </refsect1> | |
57 | ||
58 | <refsect1><title>one line style format</title> | |
59 | <para> | |
60 | Files in this format have the extension <filename>.list</filename>. | |
61 | Each line specifying a source starts with a type (e.g. <literal>deb-src</literal>) | |
62 | followed by options and arguments for this type. | |
63 | ||
64 | Individual entries cannot be continued onto a following line. Empty lines | |
65 | are ignored, and a <literal>#</literal> character anywhere on a line marks | |
66 | the remainder of that line as a comment. Consequently an entry can be | |
67 | disabled by commenting out the entire line. | |
68 | ||
69 | If options should be provided they are separated by spaces and all of | |
70 | them together are enclosed by square brackets (<literal>[]</literal>) | |
71 | included in the line after the type separated from it with a space. | |
72 | If an option allows multiple values these are separated from each other | |
73 | with a comma (<literal>,</literal>). An option name is separated from its | |
74 | value(s) by a equal sign (<literal>=</literal>). Multivalue options have | |
75 | also <literal>-=</literal> and <literal>+=</literal> as separator which | |
76 | instead of replacing the default with the given value(s) modify the default | |
77 | value(s) to remove or include the given values. | |
78 | </para><para> | |
79 | This is the traditional format and supported by all apt versions. | |
80 | Note that not all options as described below are supported by all apt versions. | |
81 | Note also that some older applications parsing this format on its own might not | |
82 | expect to encounter options as they were uncommon before the introduction of | |
83 | multi-architecture support. | |
84 | </para> | |
85 | </refsect1> | |
86 | ||
87 | <refsect1><title>deb822 style format</title> | |
88 | <para> | |
89 | Files in this format have the extension <filename>.sources</filename>. | |
90 | The format is similar in syntax to other files used by Debian and its | |
91 | derivatives, like the metadata itself apt will download from the configured | |
92 | sources or the <filename>debian/control</filename> file in a Debian source package. | |
93 | ||
94 | Individual entries are separated by an empty line, additional empty | |
95 | lines are ignored, and a <literal>#</literal> character at the start of | |
96 | the line marks the entire line as a comment. An entry can hence be | |
97 | disabled by commenting out each line belonging to the stanza, but it is | |
98 | usually easier to add the field "Enabled: no" to the stanza to disable | |
99 | the entry. Removing the field or setting it to yes reenables it. | |
100 | ||
101 | Options have the same syntax as every other field: A fieldname separated by | |
102 | a colon (<literal>:</literal>) and optionally spaces from its value(s). | |
103 | Note especially that multiple values are separated by spaces, not by | |
104 | commas as in the one line format. Multivalue fields like <literal>Architectures</literal> | |
105 | also have <literal>Architectures-Add</literal> and <literal>Architectures-Remove</literal> | |
106 | to modify the default value rather than replacing it. | |
107 | </para><para> | |
108 | This is a new format supported by apt itself since version 1.1. Previous | |
109 | versions ignore such files with a notice message as described earlier. | |
110 | It is intended to make this format gradually the default format and | |
111 | deprecating the previously described one line style format as it is | |
112 | easier to create, extend and modify by humans and machines alike | |
113 | especially if a lot of sources and/or options are involved. | |
114 | ||
115 | Developers who are working with and/or parsing apt sources are highly | |
116 | encouraged to add support for this format and to contact the APT team | |
117 | to coordinate and share this work. Users can freely adopt this format | |
118 | already, but could encounter problems with software not supporting | |
119 | the format yet. | |
120 | </para> | |
121 | </refsect1> | |
122 | ||
123 | <refsect1><title>The deb and deb-src types: General Format</title> | |
124 | <para>The <literal>deb</literal> type references a typical two-level Debian | |
125 | archive, <filename>distribution/component</filename>. The | |
126 | <literal>distribution</literal> is generally a suite name like | |
127 | <literal>stable</literal> or <literal>testing</literal> or a codename like | |
128 | <literal>&stable-codename;</literal> or <literal>&testing-codename;</literal> | |
129 | while component is one of <literal>main</literal>, <literal>contrib</literal> or | |
130 | <literal>non-free</literal>. The | |
131 | <literal>deb-src</literal> type references a Debian distribution's source | |
132 | code in the same form as the <literal>deb</literal> type. | |
133 | A <literal>deb-src</literal> line is required to fetch source indexes.</para> | |
134 | ||
135 | <para>The format for two one line style entries using the | |
136 | <literal>deb</literal> and <literal>deb-src</literal> types is:</para> | |
137 | ||
138 | <literallayout>deb [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...] | |
139 | deb-src [ option1=value1 option2=value2 ] uri suite [component1] [component2] [...]</literallayout> | |
140 | ||
141 | <para>Alternatively the equivalent entry in deb822 style looks like this: | |
142 | <literallayout> | |
143 | Types: deb deb-src | |
144 | URIs: uri | |
145 | Suites: suite | |
146 | Components: [component1] [component2] [...] | |
147 | option1: value1 | |
148 | option2: value2 | |
149 | </literallayout> | |
150 | </para> | |
151 | ||
152 | <para>The URI for the <literal>deb</literal> type must specify the base of the | |
153 | Debian distribution, from which APT will find the information it needs. | |
154 | <literal>suite</literal> can specify an exact path, in which case the | |
155 | components must be omitted and <literal>suite</literal> must end with | |
156 | a slash (<literal>/</literal>). This is useful for the case when only a | |
157 | particular sub-directory of the archive denoted by the URI is of interest. | |
158 | If <literal>suite</literal> does not specify an exact path, at least | |
159 | one <literal>component</literal> must be present.</para> | |
160 | ||
161 | <para><literal>suite</literal> may also contain a variable, | |
162 | <literal>$(ARCH)</literal> | |
163 | which expands to the Debian architecture (such as <literal>amd64</literal> or | |
164 | <literal>armel</literal>) used on the system. This permits architecture-independent | |
165 | <filename>sources.list</filename> files to be used. In general this is only | |
166 | of interest when specifying an exact path, <literal>APT</literal> will | |
167 | automatically generate a URI with the current architecture otherwise.</para> | |
168 | ||
169 | <para>Especially in the one line style format since only one distribution | |
170 | can be specified per line it may be necessary to have multiple lines for | |
171 | the same URI, if a subset of all available distributions or components at | |
172 | that location is desired. APT will sort the URI list after it has | |
173 | generated a complete set internally, and will collapse multiple | |
174 | references to the same Internet host, for instance, into a single | |
175 | connection, so that it does not inefficiently establish a | |
176 | connection, close it, do something else, and then re-establish a | |
177 | connection to that same host. APT also parallelizes connections to | |
178 | different hosts to more effectively deal with sites with low | |
179 | bandwidth.</para> | |
180 | ||
181 | <para>It is important to list sources in order of preference, with the most | |
182 | preferred source listed first. Typically this will result in sorting | |
183 | by speed from fastest to slowest (CD-ROM followed by hosts on a local | |
184 | network, followed by distant Internet hosts, for example).</para> | |
185 | ||
186 | <para>As an example, the sources for your distribution could look like this | |
187 | in one line style format: | |
188 | <literallayout>&sourceslist-list-format;</literallayout> or like this in | |
189 | deb822 style format: | |
190 | <literallayout>&sourceslist-sources-format;</literallayout></para> | |
191 | </refsect1> | |
192 | ||
193 | <refsect1><title>The deb and deb-src types: Options</title> | |
194 | <para>Each source entry can have options specified modifying which and how | |
195 | the source is accessed and data acquired from it. Format, syntax and names | |
196 | of the options varies between the two formats one line and deb822 style | |
197 | as described, but they have both the same options available. For simplicity | |
198 | we list the deb822 fieldname and provide the one line name in brackets. | |
199 | Remember that beside setting multivalue options explicitly, there is also | |
200 | the option to modify them based on the default, but we aren't listing those | |
201 | names explicitly here. Unsupported options are silently ignored by all | |
202 | APT versions. | |
203 | ||
204 | <itemizedlist> | |
205 | <listitem><para><option>Architectures</option> | |
206 | (<option>arch</option>) is a multivalue option defining for | |
207 | which architectures information should be downloaded. If this | |
208 | option isn't set the default is all architectures as defined by | |
209 | the <option>APT::Architectures</option> config option. | |
210 | </para></listitem> | |
211 | ||
212 | <listitem><para><option>Languages</option> | |
213 | (<option>lang</option>) is a multivalue option defining for | |
214 | which languages information like translated package | |
215 | descriptions should be downloaded. If this option isn't set | |
216 | the default is all languages as defined by the | |
217 | <option>Acquire::Languages</option> config option. | |
218 | </para></listitem> | |
219 | ||
220 | <listitem><para><option>Targets</option> | |
221 | (<option>target</option>) is a multivalue option defining | |
222 | which download targets apt will try to acquire from this | |
223 | source. If not specified, the default set is defined by the | |
224 | <option>Acquire::IndexTargets</option> configuration scope. | |
225 | Aditionally, specific targets can be enabled or disabled by | |
226 | using the identifier as field name instead of using this | |
227 | multivalue option. | |
228 | </para></listitem> | |
229 | ||
230 | <listitem><para><option>PDiffs</option> (<option>pdiffs</option>) | |
231 | is a yes/no value which controls if APT should try to use PDiffs | |
232 | to update old indexes instead of downloading the new indexes | |
233 | entirely. The value of this option is ignored if the repository | |
234 | doesn't announce the availability of PDiffs. Defaults to the | |
235 | value of the option with the same name for a specific index file | |
236 | defined in the <option>Acquire::IndexTargets</option> scope, | |
237 | which itself default to the value of configuration option | |
238 | <option>Acquire::PDiffs</option> which defaults to | |
239 | <literal>yes</literal>. | |
240 | </para></listitem> | |
241 | ||
242 | ||
243 | </itemizedlist> | |
244 | ||
245 | Further more, there are options which if set effect | |
246 | <emphasis>all</emphasis> sources with the same URI and Suite, so they | |
247 | have to be set on all such entries and can not be varied between | |
248 | different components. APT will try to detect and error out on such | |
249 | anomalies. | |
250 | ||
251 | <itemizedlist> | |
252 | <listitem><para><option>Signed-By</option> (<option>signed-by</option>) | |
253 | is either an absolute path to a keyring file (has to be | |
254 | accessible and readable for the <literal>_apt</literal> user, | |
255 | so ensure everyone has read-permissions on the file) or a | |
256 | fingerprint of a key in either the | |
257 | <filename>trusted.gpg</filename> keyring or in one of the | |
258 | keyrings in the <filename>trusted.gpg.d/</filename> directory | |
259 | (see <command>apt-key fingerprint</command>). If the option is | |
260 | set only the key(s) in this keyring or only the key with this | |
261 | fingerprint is used for the &apt-secure; verification of this | |
262 | repository. Otherwise all keys in the trusted keyrings are | |
263 | considered valid signers for this repository. | |
264 | </para></listitem> | |
265 | ||
266 | <listitem><para><option>Check-Valid-Until</option> (<option>check-valid-until</option>) | |
267 | is a yes/no value which controls if APT should try to detect | |
268 | replay attacks. A repository creator can declare until then the | |
269 | data provided in the repository should be considered valid and | |
270 | if this time is reached, but no new data is provided the data | |
271 | is considered expired and an error is raised. Beside | |
272 | increasing security as a malicious attacker can't sent old data | |
273 | forever denying a user to be able to upgrade to a new version, | |
274 | this also helps users identify mirrors which are no longer | |
275 | updated. Some repositories like historic archives aren't | |
276 | updated anymore by design through, so this check can be | |
277 | disabled by setting this option to <literal>no</literal>. | |
278 | Defaults to the value of configuration option | |
279 | <option>Acquire::Check-Valid-Until</option> which itself | |
280 | defaults to <literal>yes</literal>. | |
281 | </para></listitem> | |
282 | ||
283 | <listitem><para><option>Valid-Until-Min</option> | |
284 | (<option>check-valid-min</option>) and | |
285 | <option>Valid-Until-Max</option> | |
286 | (<option>valid-until-max</option>) can be used to raise or | |
287 | lower the time period in seconds in which the data from this | |
288 | repository is considered valid. -Max can be especially useful | |
289 | if the repository provides no Valid-Until field on its Release | |
290 | file to set your own value, while -Min can be used to increase | |
291 | the valid time on seldom updated (local) mirrors of a more | |
292 | frequently updated but less accessible archive (which is in the | |
293 | sources.list as well) instead of disabling the check entirely. | |
294 | Default to the value of the configuration options | |
295 | <option>Acquire::Min-ValidTime</option> and | |
296 | <option>Acquire::Max-ValidTime</option> which are both unset by | |
297 | default. | |
298 | </para></listitem> | |
299 | ||
300 | </itemizedlist> | |
301 | ||
302 | </para> | |
303 | </refsect1> | |
304 | ||
305 | <refsect1><title>URI specification</title> | |
306 | ||
307 | <para>The currently recognized URI types are: | |
308 | <variablelist> | |
309 | <varlistentry><term><command>file</command></term> | |
310 | <listitem><para> | |
311 | The file scheme allows an arbitrary directory in the file system to be | |
312 | considered an archive. This is useful for NFS mounts and local mirrors or | |
313 | archives.</para></listitem> | |
314 | </varlistentry> | |
315 | ||
316 | <varlistentry><term><command>cdrom</command></term> | |
317 | <listitem><para> | |
318 | The cdrom scheme allows APT to use a local CD-ROM drive with media | |
319 | swapping. Use the &apt-cdrom; program to create cdrom entries in the | |
320 | source list.</para></listitem> | |
321 | </varlistentry> | |
322 | ||
323 | <varlistentry><term><command>http</command></term> | |
324 | <listitem><para> | |
325 | The http scheme specifies an HTTP server for the archive. If an environment | |
326 | variable <envar>http_proxy</envar> is set with the format | |
327 | http://server:port/, the proxy server specified in | |
328 | <envar>http_proxy</envar> will be used. Users of authenticated | |
329 | HTTP/1.1 proxies may use a string of the format | |
330 | http://user:pass@server:port/. | |
331 | Note that this is an insecure method of authentication.</para></listitem> | |
332 | </varlistentry> | |
333 | ||
334 | <varlistentry><term><command>ftp</command></term> | |
335 | <listitem><para> | |
336 | The ftp scheme specifies an FTP server for the archive. APT's FTP behavior | |
337 | is highly configurable; for more information see the | |
338 | &apt-conf; manual page. Please note that an FTP proxy can be specified | |
339 | by using the <envar>ftp_proxy</envar> environment variable. It is possible | |
340 | to specify an HTTP proxy (HTTP proxy servers often understand FTP URLs) | |
341 | using this environment variable and <emphasis>only</emphasis> this | |
342 | environment variable. Proxies using HTTP specified in | |
343 | the configuration file will be ignored.</para></listitem> | |
344 | </varlistentry> | |
345 | ||
346 | <varlistentry><term><command>copy</command></term> | |
347 | <listitem><para> | |
348 | The copy scheme is identical to the file scheme except that packages are | |
349 | copied into the cache directory instead of used directly at their location. | |
350 | This is useful for people using removable media to copy files around with APT.</para></listitem> | |
351 | </varlistentry> | |
352 | ||
353 | <varlistentry><term><command>rsh</command></term><term><command>ssh</command></term> | |
354 | <listitem><para> | |
355 | The rsh/ssh method invokes RSH/SSH to connect to a remote host and | |
356 | access the files as a given user. Prior configuration of rhosts or RSA keys | |
357 | is recommended. The standard <command>find</command> and <command>dd</command> | |
358 | commands are used to perform the file transfers from the remote host. | |
359 | </para></listitem> | |
360 | </varlistentry> | |
361 | ||
362 | <varlistentry><term>adding more recognizable URI types</term> | |
363 | <listitem><para> | |
364 | APT can be extended with more methods shipped in other optional packages, which should | |
365 | follow the naming scheme <package>apt-transport-<replaceable>method</replaceable></package>. | |
366 | For instance, the APT team also maintains the package <package>apt-transport-https</package>, | |
367 | which provides access methods for HTTPS URIs with features similar to the http method. | |
368 | Methods for using e.g. debtorrent are also available - see &apt-transport-debtorrent;. | |
369 | </para></listitem> | |
370 | </varlistentry> | |
371 | </variablelist> | |
372 | </para> | |
373 | </refsect1> | |
374 | ||
375 | <refsect1><title>Examples</title> | |
376 | <para>Uses the archive stored locally (or NFS mounted) at /home/apt/debian | |
377 | for stable/main, stable/contrib, and stable/non-free.</para> | |
378 | <literallayout>deb file:/home/apt/debian stable main contrib non-free</literallayout> | |
379 | <literallayout>Types: deb | |
380 | URIs: file:/home/apt/debian | |
381 | Suites: stable | |
382 | Components: main contrib non-free</literallayout> | |
383 | ||
384 | <para>As above, except this uses the unstable (development) distribution.</para> | |
385 | <literallayout>deb file:/home/apt/debian unstable main contrib non-free</literallayout> | |
386 | <literallayout>Types: deb | |
387 | URIs: file:/home/apt/debian | |
388 | Suites: unstable | |
389 | Components: main contrib non-free</literallayout> | |
390 | ||
391 | <para>Source line for the above</para> | |
392 | <literallayout>deb-src file:/home/apt/debian unstable main contrib non-free</literallayout> | |
393 | <literallayout>Types: deb-src | |
394 | URIs: file:/home/apt/debian | |
395 | Suites: unstable | |
396 | Components: main contrib non-free</literallayout> | |
397 | ||
398 | ||
399 | <para>The first line gets package information for the architectures in <literal>APT::Architectures</literal> | |
400 | while the second always retrieves <literal>amd64</literal> and <literal>armel</literal>.</para> | |
401 | <literallayout>deb http://httpredir.debian.org/debian &stable-codename; main | |
402 | deb [ arch=amd64,armel ] http://httpredir.debian.org/debian &stable-codename; main</literallayout> | |
403 | <literallayout>Types: deb | |
404 | URIs: http://httpredir.debian.org/debian | |
405 | Suites: &stable-codename; | |
406 | Components: main | |
407 | ||
408 | Types: deb | |
409 | URIs: http://httpredir.debian.org/debian | |
410 | Suites: &stable-codename; | |
411 | Components: main | |
412 | Architectures: amd64 armel | |
413 | </literallayout> | |
414 | ||
415 | <para>Uses HTTP to access the archive at archive.debian.org, and uses only | |
416 | the hamm/main area.</para> | |
417 | <literallayout>deb http://archive.debian.org/debian-archive hamm main</literallayout> | |
418 | <literallayout>Types: deb | |
419 | URIs: http://archive.debian.org/debian-archive | |
420 | Suites: hamm | |
421 | Components: main</literallayout> | |
422 | ||
423 | <para>Uses FTP to access the archive at ftp.debian.org, under the debian | |
424 | directory, and uses only the &stable-codename;/contrib area.</para> | |
425 | <literallayout>deb ftp://ftp.debian.org/debian &stable-codename; contrib</literallayout> | |
426 | <literallayout>Types: deb | |
427 | URIs: ftp://ftp.debian.org/debian | |
428 | Suites: &stable-codename; | |
429 | Components: contrib</literallayout> | |
430 | ||
431 | <para>Uses FTP to access the archive at ftp.debian.org, under the debian | |
432 | directory, and uses only the unstable/contrib area. If this line appears as | |
433 | well as the one in the previous example in <filename>sources.list</filename> | |
434 | a single FTP session will be used for both resource lines.</para> | |
435 | <literallayout>deb ftp://ftp.debian.org/debian unstable contrib</literallayout> | |
436 | <literallayout>Types: deb | |
437 | URIs: ftp://ftp.debian.org/debian | |
438 | Suites: unstable | |
439 | Components: contrib</literallayout> | |
440 | ||
441 | <para>Uses HTTP to access the archive at ftp.tlh.debian.org, under the | |
442 | universe directory, and uses only files found under | |
443 | <filename>unstable/binary-i386</filename> on i386 machines, | |
444 | <filename>unstable/binary-amd64</filename> on amd64, and so | |
445 | forth for other supported architectures. [Note this example only | |
446 | illustrates how to use the substitution variable; official debian | |
447 | archives are not structured like this] | |
448 | <literallayout>deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/</literallayout> | |
449 | <literallayout>Types: deb | |
450 | URIs: http://ftp.tlh.debian.org/universe | |
451 | Suites: unstable/binary-$(ARCH)/</literallayout> | |
452 | </para> | |
453 | ||
454 | <para>Uses HTTP to get binary packages as well as sources from the stable, testing and unstable | |
455 | suites and the components main and contrib.</para> | |
456 | <literallayout>deb http://httpredir.debian.org/debian stable main contrib | |
457 | deb-src http://httpredir.debian.org/debian stable main contrib | |
458 | deb http://httpredir.debian.org/debian testing main contrib | |
459 | deb-src http://httpredir.debian.org/debian testing main contrib | |
460 | deb http://httpredir.debian.org/debian unstable main contrib | |
461 | deb-src http://httpredir.debian.org/debian unstable main contrib</literallayout> | |
462 | <literallayout>Types: deb deb-src | |
463 | URIs: http://httpredir.debian.org/debian | |
464 | Suites: stable testing unstable | |
465 | Components: main contrib | |
466 | </literallayout> | |
467 | ||
468 | </refsect1> | |
469 | ||
470 | <refsect1><title>See Also</title> | |
471 | <para>&apt-get;, &apt-conf; | |
472 | </para> | |
473 | </refsect1> | |
474 | ||
475 | &manbugs; | |
476 | ||
477 | </refentry> |