我在 Win 7 上安装了 cygwin,但看不到 gpg /usr/bin/
。这是正常的吗?我该如何获取它?我正在尝试验证 Linux ISO,需要它来检查签名文件。
答案1
幸运的是,gpg 包含在 Cygwin 的软件存储库中。只需运行 cygwin 安装程序(setup-x86_64.exe
或者setup-x86.exe
),当出现软件包选择菜单时,搜索“gnupg”。选中 utils 下出现的“gnupg”选项,完成更新,您就大功告成了。它应该会安装 gpg 和任何依赖项。
如果由于某种原因,这不起作用,您可以自己编译。我可以根据要求提供详细说明,但目前-这一页解释如何在 Cygwin 下编译(大多数)Linux 程序,以及这一页提供有关下载源代码的说明。
答案2
更新(2018-10-20)
以下信息现已过时,因为截至目前,当前的 Cygwingnupg2软件包版本为
2.2.10-1
以及最新的gpg4win(3.1.3)位于2.2.10
。
不幸的是赛格威假如GnuPG 软件包已经过时了,仍然使用弃用的gnupg1.4。这确实令人遗憾,因为其他一切似乎都运行良好。因此,您可能会考虑下载 Windows 原生Gpg4win,但这是一个错误。此外,该软件包已过时(截至 2017-05-10),最新版本为2.3.3(2016-08-18),仅使用gnupg 2.0.30。 那么该怎么办?
相反,去 GnuPG下载页面并选择标记为的下载“当前 GnuPG 的简单安装程序”。这将从他们的FTP 站点. 安装它。GnuPG Bug 已跟踪这里。
然而,旧的原始 CygwinGPG二进制文件位于,/usr/bin/gpg.exe
并且该路径优先于新的 Windows 路径。因此,要查看新版本,您必须提供完整路径。
$ gpg --version
gpg (GnuPG) 1.4.21
...
Home: ~/.gnupg
...
$ /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg.exe --version
gpg (GnuPG) 2.1.20
libgcrypt 1.7.6
...
Home: C:/Users/xxxx/AppData/Roaming/gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
获得新二进制文件的简单解决方案是通过软链接它。
$ ln -s /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg.exe /usr/bin/gpg2
$ ln -s /cygdrive/c/Program\ Files\ \(x86\)/GnuPG/bin/gpg-agent.exe /usr/bin/gpg-agent
# And others depending on your need
$ gpg2 --version
gpg (GnuPG) 2.1.20
libgcrypt 1.7.6
...
$HOME
一切都好!最后,请注意,对于旧 gpg,您的钥匙串将位于 Cygwin 中,而/cygdrive/c/Users/xxxx/AppData/Roaming/gnupg/
对于新 gpg,则位于 中。
当然,你总是可以编译并安装最新的来源。
答案3
对我来说,2020 年的真正答案是
gpg2
现在在 cygwin 中,而不是 gpg。我怎么知道的?cygwin 包是 gnupg2,如果在 cygwin 安装程序中搜索 gpg,则找不到它。由于此线程是搜索“gpg cygwin”时最热门的,也许我可以为某人节省一些时间。
答案4
我按照以下步骤在 Cygwin 上将 GPG2 与 Git 结合使用(包括用于缓存 GPG 密码的 gpg-agent):
- 安装了 gnupg2 Cygwin 包(版本 2.2.27-1)。
- 配置 git 以使用 gnupg2:
git config --global gpg.program $(which gpg2)