How to prevent gpg from creating .gnupg directory in user's home directory
Solution 1:
You can pass it the --homedir
argument or use the GNUPGHOME
environment variable to have it use another directory instead of .gnupg
. If you're scripting this, you could create a temporary directory:
GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME
And then clean up when you're done:
gpg ...
rm -rfi $GNUPGHOME
Solution 2:
"How to prevent gpg from creating .gnupg directory"
I had the same issue as described in the question title while checking some key fingerprints on a read-only mounted disk.
The solution I used was adding the --no-options
flag to the gpg
command:
gpg --no-options \
--with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
As per manual:
--no-options
Shortcut for --options /dev/null. This option is detected before an attempt to open an option file. Using this option will also prevent the creation of a ~/.gnupg homedir.
If gpg still prints errors that it cannot read user's public and secret keyrings, the redirection 2>/dev/null
will suppress these. Note, however, that exit code of the command may be non-zero in this case, even though the key information is printed.