在macOS Sierra 10.12.2上通过自制软件安装Emacs for Mac OS X 25.1.1和gnupg2 2.0.30。
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
我的./emacs/init.el说
; gpg
(require 'epa-file)
(epa-file-enable)
(setq epg-gpg-program "/usr/local/bin/gpg2")
和
pu@pumbair.local 505 ~/.emacs.d $ file /usr/local/bin/gpg2
/usr/local/bin/gpg2: Mach-O 64-bit executable x86_64
但我似乎无法让Emacs使用gpg2; Meta-x epa-list-keys
收益:
GPG error: "no usable configuration", OpenPGP
我在这里使用的是gpg和gpg2,但第一个是后者的符号链接。
我错过了什么?
修改
浏览EasyPG的来源我得到的印象是它只适用于gpg2 2.1+,所以我卸载了自制版本并从Sourceforge安装了2.1.17版本,但这也无济于事。
答案 0 :(得分:12)
所以我最后浏览了一些与此问题相关的源文件,并直接邮寄了Daiki Ueno。他迅速回答,告诉我使用custom-set-variables
代替setq
:
(require 'epa-file)
(custom-set-variables '(epg-gpg-program "/usr/local/bin/gpg2"))
(epa-file-enable)
我认为这对于Emacs人来说是显而易见的,但我几乎不使用Emacs而不是org-mode,所以它不适合我。
答案 1 :(得分:-1)
gpg
仅在/usr/local/gnupg-2.2/bin
内。在Eamcs中,(getenv "Path")
和exec-path
仅包含/usr/bin
,但新版本的macOS限制了/usr/bin
的访问权限。
我的解决方案是创建一个符号链接并将路径添加到emacs环境及其exec路径中。
cd /usr/local/bin
ln -s ../gnupg-2.2/bin/gpg2 gpg
内部.emacs
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))