summaryrefslogtreecommitdiff
path: root/doc/examples/configure-index
blob: 2d0fb6c64b4565821a302b9e2a93aed367bd7089 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
/* This file is an index of all APT configuration directives. It should
   NOT actually be used as a real config file, though it is (except for the
   last line) a completely valid file. Most of the options have sane default
   values, unless you have specific needs you should NOT include arbitrary
   items in a custom configuration.
   
   In some instances involving filenames it is possible to set the default
   directory when the path is evaluated. This means you can use relative
   paths within the sub scope.
   
   The configuration directives are specified in a tree with {} designating
   a subscope relative to the tag before the {}. You can further specify
   a subscope using scope notation eg,
     APT::Architecture "i386";
   This is prefixed with the current scope. Scope notation must be used
   if an option is specified on the command line with -o.
*/

quiet "0";
quiet::NoUpdate "true"; // never update progress information - included in -q=1

// Options for APT in general
APT 
{
  Architecture "i386";
  Architectures { "amd64"; "armel"; };
  Build-Essential "build-essential";

  NeverAutoRemove  { "linux-image.*";  };  // packages that should never
                                            // considered for autoRemove

  // Options for apt-get
  Get 
  {
     Host-Architecture "armel";
     Arch-Only "false";
     AllowUnauthenticated "false";        // packages from unauthenticated
     AutomaticRemove "false";       
     HideAutoRemove "false";
     Download-Only "false";
     Simulate "false";
     Assume-Yes "false";
     Force-Yes "false";             // I would never set this.
     Fix-Broken "false";  
     Fix-Missing "false";     
     Show-Upgraded "false";
     Show-Versions "false";
     Upgrade "true";
     Print-URIs "false";
     Compile "false";
     Download "true";
     Purge "false";
     List-Cleanup "true";
     ReInstall "false";
     Trivial-Only "false";
     Remove "true";
     Only-Source "";
     Diff-Only "false";
     Tar-Only "false";
     Build-Dep-Automatic "true";
     Show-User-Simulation-Note "true";
  };

  Cache 
  {
     Important "false";
     AllVersions "false";
     GivenOnly "false";
     RecurseDepends "false";
     ShowFull "false";
     Generate "true";
     NamesOnly "false";
     AllNames "false";
     Installed "false";
  };

  CDROM 
  {
     Rename "false";
     NoMount "false";
     Fast "false";
     NoAct "false";
  };

  Update
  {
     Pre-Invoke {"touch /var/lib/apt/pre-update-stamp"; };
     Post-Invoke {"touch /var/lib/apt/post-update-stamp"; };
  };

  // define a new supported compressor on the fly
  APT::Compressor::rev {
     Name "rev";
     Extension ".reversed";
     Binary "rev";
     CompressArg {};
     UncompressArg {};
     Cost "10";
  };

  Authentication
  {
     TrustCDROM "false";            // consider the CD-ROM always trusted
  };

  // Some general options
  Ignore-Hold "false";
  Clean-Installed "true";
  Immediate-Configure "true";      // DO NOT turn this off, see the man page
  Force-LoopBreak "false";         // DO NOT turn this on, see the man page
  Cache-Start "20971520";
  Cache-Grow "1048576";
  Cache-Limit "0";
  Default-Release "";

  // consider Recommends, Suggests as important dependencies that should
  // be installed by default
  Install-Recommends "true";
  Install-Suggests "false";
  // reverse Recommends or Suggests prevent autoremoval
  AutoRemove::RecommendsImportant "true";
  AutoRemove::SuggestsImportant "true";

  // consider dependencies of packages in this section manual
  Never-MarkAuto-Sections {"metapackages"; "universe/metapackages"; };

  // Write progress messages on this fd (for stuff like base-config)
  Status-Fd "-1";
  // Keep the list of FDs open (normally apt closes all fds when it
  // does a ExecFork)
  Keep-Fds {};

  // control parameters for cron jobs by /etc/cron.daily/apt
  Periodic
  {
    BackupArchiveInterval "0";
    // - Backup after n-days if archive contents changed.(0=disable)

    BackupLevel "3";
    // - Backup level.(0=disable), 1 is invalid.

    // APT::Archives::MaxAge "0"; (old, deprecated)
    MaxAge "0"; // (new)
    // - Set maximum allowed age of a cache package file. If a cache 
    //   package file is older it is deleted (0=disable)

    // APT::Archives::MinAge "2"; (old, deprecated)
    MinAge "2"; // (new)
    // - Set minimum age of a package file. If a file is younger it
    //   will not be deleted (0=disable). Useful to prevent races
    //   and to keep backups of the packages for emergency.

    // APT::Archives::MaxSize "0"; (old, deprecated)
    MaxSize "0"; // (new)
    // - Set maximum size of the cache in MB (0=disable). If the cache
    //   is bigger, cached package files are deleted until the size
    //   requirement is met (the oldest packages will be deleted 
    //   first).

    Update-Package-Lists "0";
    // - Do "apt-get update" automatically every n-days (0=disable)
    //   
    Download-Upgradeable-Packages "0";
    // - Do "apt-get upgrade --download-only" every n-days (0=disable)
    //
    Unattended-Upgrade "0";
    // - Run the "unattended-upgrade" security upgrade script 
    //   every n-days (0=disabled)
    //   Requires the package "unattended-upgrades" and will write
    //   a log in /var/log/unattended-upgrades
    //
    AutocleanInterval "0";
    // - Do "apt-get autoclean" every n-days (0=disable)

    Verbose "0";
    // - Send report mail to root
    //   0:  no report             (or null string)
    //   1:  progress report       (actually any string)
    //   2:  + command outputs     (remove -qq, remove 2>/dev/null, add -d)
    //   3:  + trace on            
  };
};

// Options for the downloading routines
Acquire
{
  Queue-Mode "host";       // host|access
  Retries "0";
  Source-Symlinks "true";
  ForceHash "sha256"; // hashmethod used for expected hash: sha256, sha1 or md5sum

  PDiffs "true";     // try to get the IndexFile diffs
  PDiffs::FileLimit "4"; // don't use diffs if we would need more than 4 diffs
  PDiffs::SizeLimit "50"; // don't use diffs if size of all patches excess
			  // 50% of the size of the original file

  Check-Valid-Until "true";
  Max-ValidTime "864000"; // 10 days
  Max-ValidTime::Debian-Security "604800"; // 7 days, label specific configuration

  // HTTP method configuration
  http 
  {
    Proxy "http://127.0.0.1:3128";
    Proxy::http.us.debian.org "DIRECT";  // Specific per-host setting
    Timeout "120";
    Pipeline-Depth "5";
    AllowRedirect  "true";

    // Cache Control. Note these do not work with Squid 2.0.2
    No-Cache "false";
    Max-Age "86400";     // 1 Day age on index files
    No-Store "false";    // Prevent the cache from storing archives    
    Dl-Limit "7";        // 7Kb/sec maximum download rate
    User-Agent "Debian APT-HTTP/1.3";
  };



  // HTTPS method configuration: uses the http
  // - proxy config
  // - cache-control values
  // - Dl-Limit, Timout, ... values
  // if not set explicit for https
  //
  // see /usr/share/doc/apt/examples/apt-https-method-example.conf.gz
  // for more examples
  https
  {
	Verify-Peer "false";
	SslCert "/etc/apt/some.pem";
	CaPath  "/etc/ssl/certs";
	Verify-Host "true";
	AllowRedirect  "true";

	Timeout "120";
	AllowRedirect  "true";

	// Cache Control. Note these do not work with Squid 2.0.2
	No-Cache "false";
	Max-Age "86400";     // 1 Day age on index files
	No-Store "false";    // Prevent the cache from storing archives
	Dl-Limit "7";        // 7Kb/sec maximum download rate

	User-Agent "Debian APT-CURL/1.0";
  };

  ftp
  {
    Proxy "ftp://127.0.0.1/";
    Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting

    /* Required script to perform proxy login. This example should work
       for tisfwtk */
    ProxyLogin
    {
       "USER $(PROXY_USER)";
       "PASS $(PROXY_PASS)";
       "USER $(SITE_USER)@$(SITE):$(SITE_PORT)";
       "PASS $(SITE_PASS)";
    };
    
    Timeout "120";
    
    /* Passive mode control, proxy, non-proxy and per-host. Pasv mode
       is preferred if possible */
    Passive "true";
    Proxy::Passive "true";
    Passive::http.us.debian.org "true"; // Specific per-host setting
  };
  
  cdrom
  {
    // do auto detection of the cdrom mountpoint
    AutoDetect "true";   
    // when auto-detecting, only look for cdrom/dvd. when this is false
    // it will support any removable device as a "cdrom" source
    CdromOnly "true";
    
    // cdrom mountpoint (needs to be defined in fstab if AutoDetect is not used)
    mount "/cdrom";

    // You need the trailing slash!
    "/cdrom/"
    {
       Mount "sleep 1000";
       UMount "sleep 500";
    }
  };

  gpgv
  {
   Options {"--ignore-time-conflict";}	// not very useful on a normal system
  };

  CompressionTypes
  {
    bz2 "bzip2";
    lzma "lzma";
    gz "gzip";

    Order { "uncompressed"; "gz"; "lzma"; "bz2"; };
  };

  Languages
  {
     "environment";
     "de";
     "en";
     "none";
     "fr";
  };

  // Location of the changelogs with the placeholder @CHANGEPATH@ (e.g. "main/a/apt/apt_1.1")
  Changelogs::URI::Origin::Debian "http://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog";
};

// Directory layout
Dir "/"
{
  // Location of the state dir
  State "var/lib/apt/" 
  {
     Lists "lists/";
     status "/var/lib/dpkg/status";
     extended_states "extended_states";
     cdroms "cdroms.list";
  };
  
  // Location of the cache dir
  Cache "var/cache/apt/" {
     Archives "archives/";
     // backup directory created by /etc/cron.daily/apt
     Backup "backup/"; 
     srcpkgcache "srcpkgcache.bin";
     pkgcache "pkgcache.bin";     
  };
  
  // Config files
  Etc "etc/apt/" {
     Main "apt.conf";
     Netrc "auth.conf";
     Parts "apt.conf.d/";
     Preferences "preferences";
     PreferencesParts "preferences.d";
     SourceList "sources.list";
     SourceParts "sources.list.d";
     VendorList "vendors.list";
     VendorParts "vendors.list.d";
     Trusted "trusted.gpg";
     TrustedParts "trusted.gpg.d";
  };
  
  // Locations of binaries
  Bin {
     methods "/usr/lib/apt/methods/";
     gzip "/bin/gzip";
     gpg  "/usr/bin/gpgv";
     dpkg "/usr/bin/dpkg";
     dpkg-source "/usr/bin/dpkg-source";
     dpkg-buildpackage "/usr/bin/dpkg-buildpackage";
     apt-get "/usr/bin/apt-get";
     apt-cache "/usr/bin/apt-cache";
  };

  // Location of the logfile
  Log "var/log/apt" {
	Terminal "term.log";
	History "history.log";
  };

  // Media 
  Media 
  {
	// Media AutoDetect mount path
	MountPath "/media/apt";
  };

  // Media 
  Media 
  {
	// Media AutoDetect mount path
	MountPath "/media/apt";
  };
};

// Things that effect the APT dselect method
DSelect 
{
   Clean "auto";   // always|auto|prompt|never
   Options "-f";
   UpdateOptions "";
   PromptAfterUpdate "no";
   CheckDir "no";
}

DPkg
{
   // let apt aggressivly use dpkg triggers
   NoTriggers "true";
   ConfigurePending "true";

   // Probably don't want to use force-downgrade..
   Options {"--force-overwrite";"--force-downgrade";}

   // Auto re-mounting of a readonly /usr
   Pre-Invoke {"mount -o remount,rw /usr";};
   Post-Invoke {"mount -o remount,ro /usr";};

   Chroot-Directory "/";

   // Prevents daemons from getting cwd as something mountable (default)
   Run-Directory "/";

   // Build options for apt-get source --compile
   Build-Options "-b -uc";

   // Pre-configure all packages before they are installed using debconf.
   Pre-Install-Pkgs {"dpkg-preconfigure --apt --priority=low --frontend=dialog";};

   // Flush the contents of stdin before forking dpkg.
   FlushSTDIN "true";

   // Control the size of the command line passed to dpkg.
   MaxArgBytes 32768;
   MaxArgs 8192;

   // controls if apt will apport on the first dpkg error or if it 
   // tries to install as many packages as possible
   StopOnError "true";
}

/* Options you can set to see some debugging text They correspond to names
   of classes in the source code */
Debug 
{
  pkgProblemResolver "false";
  pkgProblemResolver::ShowScores "false";
  pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies
  pkgDepCache::Marker "false"; 
  pkgCacheGen "false";
  pkgAcquire "false";
  pkgAcquire::Worker "false";
  pkgAcquire::Auth "false";
  pkgDPkgPM "false";
  pkgDPkgProgressReporting "false";
  pkgOrderList "false";
  pkgPackageManager "false"; // OrderList/Configure debugging
  pkgAutoRemove "false";   // show information about automatic removes
  BuildDeps "false";
  pkgInitialize "false";   // This one will dump the configuration space
  NoLocking "false";
  Acquire::Ftp "false";    // Show ftp command traffic
  Acquire::Http "false";   // Show http command traffic
  Acquire::Https "false";   // Show https debug
  Acquire::gpgv "false";   // Show the gpgv traffic
  Acquire::cdrom "false";   // Show cdrom debug output
  aptcdrom "false";        // Show found package files
  IdentCdrom "false";
  acquire::netrc "false";  // netrc parser
  RunScripts "false";      // debug invocation of external scripts  
}

pkgCacheGen
{
  Essential "native"; // other modes: all, none, installed
  ForceEssential { "apt"; };
  ForceImportant "";
}

/* Whatever you do, do not use this configuration file!! Take out ONLY
   the portions you need! */
This Is Not A Valid Config File