Emacs epa和gnupg2:"没有可用的配置"

use*_*lpa 7 emacs gnupg

使用Emacs for Mac OS X 25.1.1和gnupg2 2.0.30通过homebrew安装在macOS Sierra 10.12.2上.

Emacs正常工作,gnugp2在命令行级别也能很好地工作(删除了电子邮件地址):

pu@pumbair.local 528 ~/Dropbox/org $  echo "Hello World" >text.txt
pu@pumbair.local 536 ~/Dropbox/org $  gpg -a -e -r x@y <text.txt >text.gpg
pu@pumbair.local 537 ~/Dropbox/org $  gpg -d text.gpg
You need a passphrase to unlock the secret key for
2048-bit RSA key, ID 37B58834, created 2017-01-18 (main key ID 45C04EA8)
gpg: encrypted with 2048-bit RSA key, ID 37B58834, created 2017-01-18
Hello World
Run Code Online (Sandbox Code Playgroud)

我的./emacs/init.el说

; gpg
(require 'epa-file)
(epa-file-enable)
(setq epg-gpg-program "/usr/local/bin/gpg2")
Run Code Online (Sandbox Code Playgroud)

pu@pumbair.local 505 ~/.emacs.d $  file /usr/local/bin/gpg2
/usr/local/bin/gpg2: Mach-O 64-bit executable x86_64
Run Code Online (Sandbox Code Playgroud)

但我似乎无法让Emacs使用gpg2; Meta-x epa-list-keys收益率:

GPG error: "no usable configuration", OpenPGP
Run Code Online (Sandbox Code Playgroud)

我在这里使用gpg和gpg2,但第一个是后者的符号链接.

我错过了什么?

编辑

浏览EasyPG的来源我得到的印象是它只适用于gpg2 2.1+,所以我卸载了自制软件版本并从Sourceforge安装了2.1.17版,但这也无济于事.

use*_*lpa 13

所以我最后浏览了一些与这个问题相关的源文件,并直接邮寄了Daiki Ueno.他迅速回答,告诉我使用custom-set-variables而不是setq:

(require 'epa-file)
(custom-set-variables '(epg-gpg-program  "/usr/local/bin/gpg2"))
(epa-file-enable)
Run Code Online (Sandbox Code Playgroud)

我认为这对Emacs人来说是显而易见的,但我几乎不使用Emacs而不是org-mode,所以它不适合我.

  • 作为常规的emacs用户,这并不明显,并且宣传为开箱即用的东西 (2认同)