1PACMAN.CONF(5)                   Pacman Manual                  PACMAN.CONF(5)
2
3
4

NAME

6       pacman.conf - pacman package manager configuration file
7

SYNOPSIS

9       /etc/pacman.conf
10

DESCRIPTION

12       Pacman, using libalpm(3), will attempt to read pacman.conf each time it
13       is invoked. This configuration file is divided into sections or
14       repositories. Each section defines a package repository that pacman can
15       use when searching for packages in --sync mode. The exception to this
16       is the options section, which defines global options.
17

EXAMPLE

19           #
20           # pacman.conf
21           #
22           [options]
23           NoUpgrade = etc/passwd etc/group etc/shadow
24           NoUpgrade = etc/fstab
25
26           [core]
27           Include = /etc/pacman.d/core
28
29           [custom]
30           Server = file:///home/pkgs
31
32           Note
33           Each directive must be in CamelCase. If the case isn’t respected,
34           the directive won’t be recognized. For example. noupgrade or
35           NOUPGRADE will not work.
36

OPTIONS

38       RootDir = path/to/root
39           Set the default root directory for pacman to install to. This
40           option is used if you want to install a package on a temporary
41           mounted partition which is "owned" by another system, or for a
42           chroot install.  NOTE: If database path or log file are not
43           specified on either the command line or in pacman.conf(5), their
44           default location will be inside this root path.
45
46       DBPath = path/to/db/dir
47           Overrides the default location of the toplevel database directory.
48           A typical default is /var/lib/pacman/. Most users will not need to
49           set this option.  NOTE: if specified, this is an absolute path and
50           the root path is not automatically prepended.
51
52       CacheDir = path/to/cache/dir
53           Overrides the default location of the package cache directory. A
54           typical default is /var/cache/pacman/pkg/. Multiple cache
55           directories can be specified, and they are tried in the order they
56           are listed in the config file. If a file is not found in any cache
57           directory, it will be downloaded to the first cache directory with
58           write access.  NOTE: this is an absolute path, the root path is not
59           automatically prepended.
60
61       HookDir = path/to/hook/dir
62           Add directories to search for alpm hooks in addition to the system
63           hook directory (/usr/share/libalpm/hooks/). A typical default is
64           /etc/pacman.d/hooks. Multiple directories can be specified with
65           hooks in later directories taking precedence over hooks in earlier
66           directories.  NOTE: this is an absolute path, the root path is not
67           automatically prepended. For more information on the alpm hooks,
68           see alpm-hooks(5).
69
70       GPGDir = path/to/gpg/dir
71           Overrides the default location of the directory containing
72           configuration files for GnuPG. A typical default is
73           /etc/pacman.d/gnupg/. This directory should contain two files:
74           pubring.gpg and trustdb.gpg.  pubring.gpg holds the public keys of
75           all packagers.  trustdb.gpg contains a so-called trust database,
76           which specifies that the keys are authentic and trusted.  NOTE:
77           this is an absolute path, the root path is not automatically
78           prepended.
79
80       LogFile = /path/to/file
81           Overrides the default location of the pacman log file. A typical
82           default is /var/log/pacman.log. This is an absolute path and the
83           root directory is not prepended.
84
85       HoldPkg = package ...
86           If a user tries to --remove a package that’s listed in HoldPkg,
87           pacman will ask for confirmation before proceeding. Shell-style
88           glob patterns are allowed.
89
90       IgnorePkg = package ...
91           Instructs pacman to ignore any upgrades for this package when
92           performing a --sysupgrade. Shell-style glob patterns are allowed.
93
94       IgnoreGroup = group ...
95           Instructs pacman to ignore any upgrades for all packages in this
96           group when performing a --sysupgrade. Shell-style glob patterns are
97           allowed.
98
99       Include = path
100           Include another configuration file. This file can include
101           repositories or general configuration options. Wildcards in the
102           specified paths will get expanded based on glob(7) rules.
103
104       Architecture = auto | i686 | x86_64 | ...
105           If set, pacman will only allow installation of packages of the
106           given architecture (e.g.  i686, x86_64, etc). The special value
107           auto will use the system architecture, provided via “uname -m”. If
108           unset, no architecture checks are made.  NOTE: Packages with the
109           special architecture any can always be installed, as they are meant
110           to be architecture independent.
111
112       XferCommand = /path/to/command %u
113           If set, an external program will be used to download all remote
114           files. All instances of %u will be replaced with the download URL.
115           If present, instances of %o will be replaced with the local
116           filename, plus a “.part” extension, which allows programs like wget
117           to do file resumes properly.
118
119           This option is useful for users who experience problems with
120           built-in HTTP/FTP support, or need the more advanced proxy support
121           that comes with utilities like wget.
122
123       NoUpgrade = file ...
124           All files listed with a NoUpgrade directive will never be touched
125           during a package install/upgrade, and the new files will be
126           installed with a .pacnew extension. These files refer to files in
127           the package archive, so do not include the leading slash (the
128           RootDir) when specifying them. Shell-style glob patterns are
129           allowed. It is possible to invert matches by prepending a file with
130           an exclamation mark. Inverted files will result in previously
131           blacklisted files being whitelisted again. Subsequent matches will
132           override previous ones. A leading literal exclamation mark or
133           backslash needs to be escaped.
134
135       NoExtract = file ...
136           All files listed with a NoExtract directive will never be extracted
137           from a package into the filesystem. This can be useful when you
138           don’t want part of a package to be installed. For example, if your
139           httpd root uses an index.php, then you would not want the
140           index.html file to be extracted from the apache package. These
141           files refer to files in the package archive, so do not include the
142           leading slash (the RootDir) when specifying them. Shell-style glob
143           patterns are allowed. It is possible to invert matches by
144           prepending a file with an exclamation mark. Inverted files will
145           result in previously blacklisted files being whitelisted again.
146           Subsequent matches will override previous ones. A leading literal
147           exclamation mark or backslash needs to be escaped.
148
149       CleanMethod = KeepInstalled &| KeepCurrent
150           If set to KeepInstalled (the default), the -Sc operation will clean
151           packages that are no longer installed (not present in the local
152           database). If set to KeepCurrent, -Sc will clean outdated packages
153           (not present in any sync database). The second behavior is useful
154           when the package cache is shared among multiple machines, where the
155           local databases are usually different, but the sync databases in
156           use could be the same. If both values are specified, packages are
157           only cleaned if not installed locally and not present in any known
158           sync database.
159
160       SigLevel = ...
161           Set the default signature verification level. For more information,
162           see Package and Database Signature Checking below.
163
164       LocalFileSigLevel = ...
165           Set the signature verification level for installing packages using
166           the "-U" operation on a local file. Uses the value from SigLevel as
167           the default.
168
169       RemoteFileSigLevel = ...
170           Set the signature verification level for installing packages using
171           the "-U" operation on a remote file URL. Uses the value from
172           SigLevel as the default.
173
174       UseSyslog
175           Log action messages through syslog(). This will insert log entries
176           into /var/log/messages or equivalent.
177
178       Color
179           Automatically enable colors only when pacman’s output is on a tty.
180
181       UseDelta [= ratio]
182           Download delta files instead of complete packages if possible.
183           Requires the xdelta3 program to be installed. If a ratio is
184           specified (e.g., 0.5), then it is used as a cutoff for determining
185           whether to use deltas. Allowed values are between 0.0 and 2.0;
186           sensible values are between 0.2 and 0.9. Using a value above 1.0 is
187           not recommended. The default is 0.7 if left unspecified.
188
189       TotalDownload
190           When downloading, display the amount downloaded, download rate,
191           ETA, and completed percentage of the entire download list rather
192           than the percent of each individual download target. The progress
193           bar is still based solely on the current file download. This option
194           won’t work if XferCommand is used.
195
196       CheckSpace
197           Performs an approximate check for adequate available disk space
198           before installing packages.
199
200       VerbosePkgLists
201           Displays name, version and size of target packages formatted as a
202           table for upgrade, sync and remove operations.
203

REPOSITORY SECTIONS

205       Each repository section defines a section name and at least one
206       location where the packages can be found. The section name is defined
207       by the string within square brackets (the two above are core and
208       custom). Repository names must be unique and the name local is reserved
209       for the database of installed packages. Locations are defined with the
210       Server directive and follow a URL naming structure. If you want to use
211       a local directory, you can specify the full path with a “file://”
212       prefix, as shown above.
213
214       A common way to define DB locations utilizes the Include directive. For
215       each repository defined in the configuration file, a single Include
216       directive can contain a file that lists the servers for that
217       repository.
218
219           [core]
220           # use this server first
221           Server = ftp://ftp.archlinux.org/$repo/os/$arch
222           # next use servers as defined in the mirrorlist below
223           Include = {sysconfdir}/pacman.d/mirrorlist
224
225       The order of repositories in the configuration files matters;
226       repositories listed first will take precedence over those listed later
227       in the file when packages in two repositories have identical names,
228       regardless of version number.
229
230       Include = path
231           Include another config file. This file can include repositories or
232           general configuration options. Wildcards in the specified paths
233           will get expanded based on glob(7) rules.
234
235       Server = url
236           A full URL to a location where the database, packages, and
237           signatures (if available) for this repository can be found.
238
239           During parsing, pacman will define the $repo variable to the name
240           of the current section. This is often utilized in files specified
241           using the Include directive so all repositories can use the same
242           mirrorfile. pacman also defines the $arch variable to the value of
243           Architecture, so the same mirrorfile can even be used for different
244           architectures.
245
246       SigLevel = ...
247           Set the signature verification level for this repository. For more
248           information, see Package and Database Signature Checking below.
249
250       Usage = ...
251           Set the usage level for this repository. This option takes a list
252           of tokens which must be at least one of the following:
253
254           Sync
255               Enables refreshes for this repository.
256
257           Search
258               Enables searching for this repository.
259
260           Install
261               Enables installation of packages from this repository during a
262               --sync operation.
263
264           Upgrade
265               Allows this repository to be a valid source of packages when
266               performing a --sysupgrade.
267
268           All
269               Enables all of the above features for the repository. This is
270               the default if not specified.
271
272               Note that an enabled repository can be operated on explicitly,
273               regardless of the Usage level set.
274

PACKAGE AND DATABASE SIGNATURE CHECKING

276       The SigLevel directive is valid in both the [options] and repository
277       sections. If used in [options], it sets a default value for any
278       repository that does not provide the setting.
279
280       ·   If set to Never, no signature checking will take place.
281
282       ·   If set to Optional , signatures will be checked when present, but
283           unsigned databases and packages will also be accepted.
284
285       ·   If set to Required, signatures will be required on all packages and
286           databases.
287
288       Alternatively, you can get more fine-grained control by combining some
289       of the options and prefixes described below. All options in a config
290       file are processed in top-to-bottom, left-to-right fashion, where later
291       options override and/or supplement earlier ones. If SigLevel is
292       specified in a repository section, the starting value is that from the
293       [options] section, or the built-in system default as shown below if not
294       specified.
295
296       The options are split into two main groups, described below. Terms used
297       such as “marginally trusted” are terms used by GnuPG, for more
298       information please consult gpg(1).
299
300       When to Check
301           These options control if and when signature checks should take
302           place.
303
304           Never
305               All signature checking is suppressed, even if signatures are
306               present.
307
308           Optional (default)
309               Signatures are checked if present; absence of a signature is
310               not an error. An invalid signature is a fatal error, as is a
311               signature from a key not in the keyring.
312
313           Required
314               Signatures are required; absence of a signature or an invalid
315               signature is a fatal error, as is a signature from a key not in
316               the keyring.
317
318       What is Allowed
319           These options control what signatures are viewed as permissible.
320           Note that neither of these options allows acceptance of invalid or
321           expired signatures, or those from revoked keys.
322
323           TrustedOnly (default)
324               If a signature is checked, it must be in the keyring and fully
325               trusted; marginal trust does not meet this criteria.
326
327           TrustAll
328               If a signature is checked, it must be in the keyring, but is
329               not required to be assigned a trust level (e.g., unknown or
330               marginal trust).
331
332       Options in both groups can additionally be prefixed with either Package
333       or Database, which will cause it to only take effect on the specified
334       object type. For example, PackageTrustAll would allow marginal and
335       unknown trust level signatures for packages.
336
337       The built-in default is the following:
338
339           SigLevel = Optional TrustedOnly
340

USING YOUR OWN REPOSITORY

342       If you have numerous custom packages of your own, it is often easier to
343       generate your own custom local repository than install them all with
344       the --upgrade option. All you need to do is generate a compressed
345       package database in the directory with these packages so pacman can
346       find it when run with --refresh.
347
348           repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz
349
350       The above command will generate a compressed database named
351       /home/pkgs/custom.db.tar.gz. Note that the database must be of the form
352       defined in the configuration file and {ext} is a valid compression type
353       as documented in repo-add(8). That’s it! Now configure your custom
354       section in the configuration file as shown in the config example above.
355       Pacman will now use your package repository. If you add new packages to
356       the repository, remember to re-generate the database and use pacman’s
357       --refresh option.
358
359       For more information on the repo-add command, see “repo-add --help” or
360       repo-add(8).
361

SEE ALSO

363       pacman(8), libalpm(3)
364
365       See the pacman website at https://www.archlinux.org/pacman/ for current
366       information on pacman and its related tools.
367

BUGS

369       Bugs? You must be kidding; there are no bugs in this software. But if
370       we happen to be wrong, send us an email with as much detail as possible
371       to pacman-dev@archlinux.org.
372

AUTHORS

374       Current maintainers:
375
376       ·   Allan McRae <allan@archlinux.org>
377
378       ·   Andrew Gregory <andrew.gregory.8@gmail.com>
379
380       ·   Dan McGee <dan@archlinux.org>
381
382       ·   Dave Reisner <dreisner@archlinux.org>
383
384       Past major contributors:
385
386       ·   Judd Vinet <jvinet@zeroflux.org>
387
388       ·   Aurelien Foret <aurelien@archlinux.org>
389
390       ·   Aaron Griffin <aaron@archlinux.org>
391
392       ·   Xavier Chantry <shiningxc@gmail.com>
393
394       ·   Nagy Gabor <ngaba@bibl.u-szeged.hu>
395
396       For additional contributors, use git shortlog -s on the pacman.git
397       repository.
398
399
400
401Pacman 5.0.2                      2019-07-26                    PACMAN.CONF(5)
Impressum