GPG Configuration - Using the GNU Privacy Guard
Description: Using the GNU Privacy Guard

Next: GPG Examples, Previous: GPG Options, Up: Invoking GPG

### 3.3 Configuration files

There are a few configuration files to control certain aspects of `gpg2`'s operation. Unless noted, they are expected in the current home directory (see option –homedir).

`gpg.conf`
  This is the standard configuration file read by `gpg2` on startup. It may contain any valid long option; the leading two dashes may not be entered and the option may not be abbreviated. This default name may be changed on the command line (see option –options). You should backup this file.

Note that on larger installations, it is useful to put predefined files into the directory `/etc/skel/.gnupg/` so that newly created users start up with a working configuration. For existing users the a small helper script is provided to create these files (see addgnupghome).

For internal purposes `gpg2` creates and maintains a few other files; They all live in in the current home directory (see option –homedir). Only the `gpg2` may modify these files.

`~/.gnupg/secring.gpg`
  The secret keyring. You should backup this file.
`~/.gnupg/secring.gpg.lock`
  The lock file for the secret keyring.
`~/.gnupg/pubring.gpg`
  The public keyring. You should backup this file.
`~/.gnupg/pubring.gpg.lock`
  The lock file for the public keyring.
`~/.gnupg/trustdb.gpg`
  The trust database. There is no need to backup this file; it is better to backup the ownertrust values (see option –export-ownertrust).
`~/.gnupg/trustdb.gpg.lock`
  The lock file for the trust database.
`~/.gnupg/random_seed`
  A file used to preserve the state of the internal random pool.
`/usr[/local]/share/gnupg/options.skel`
  The skeleton options file.
`/usr[/local]/lib/gnupg/`
  Default location for extensions.

Operation is further controlled by a few environment variables:

HOME
  Used to locate the default home directory.
GNUPGHOME
  If set directory used instead of "~/.gnupg".
GPG_AGENT_INFO
  Used to locate the gpg-agent. The value consists of 3 colon delimited fields: The first is the path to the Unix Domain Socket, the second the PID of the gpg-agent and the protocol version which should be set to 1. When starting the gpg-agent as described in its documentation, this variable is set to the correct value. The option `--gpg-agent-info` can be used to override it.
PINENTRY_USER_DATA
  This value is passed via gpg-agent to pinentry. It is useful to convey extra information to a custom pinentry.
COLUMNS
LINES
  Used to size some displays to the full size of the screen.
LANGUAGE
  Apart from its use by GNU, it is used in the W32 version to override the language selection done through the Registry. If used and set to a valid and available language name (langid), the file with the translation is loaded from gpgdir`/gnupg.nls/`langid`.mo`. Here gpgdir is the directory out of which the gpg binary has been loaded. If it can't be loaded the Registry is tried and as last resort the native Windows locale system is used.