我最近向Clojars部署了一个库,并试图确保它被签名,但我看不到任何这样或那样的证据。
以下是我遵循的步骤:
我已经安装了gpg (Linux系统),gpg-agent正在运行,并且已经生成了公钥/私钥对。当我注册时,我还将我的GPG公钥添加到了Clojars。
我用以下命令创建了~/.lein/redentials.clj:
{#"https://clojars.org/repo"
{:username "midpeter444" :password "passw0rd"}} 然后我运行:
gpg --default-recipient-self -e ~/.lein/credentials.clj > ~/.lein/credentials.clj.gpg然后删除~/..lein/redentials.clj
在我的lein项目目录中,我运行:
lein deploy clojars它提示我两次(通过gpg-agent)输入我的密码,我输入了密码,然后它将jar上传到Clojars。
所以它看起来是有效的,但当我在Clojars网站上查看我的库时,或者在从Clojars下载后的库中,我看不到任何证据表明它是签名的,或者它是否失败。
我是否需要做其他事情,比如在project.clj中添加注释以某种方式对其进行签名?
发布于 2013-03-03 11:26:09
在进一步研究之后,如果您已经将PGP公钥添加到您的Clojars帐户中,lein 2将自动为您的jars签名。如果您运行lein deps :verify,它将告诉您库是否已签名。
因此,您可以创建一个使用已发布的库的项目,并运行此命令。
输出示例:
$ lein deps :verify
:signed [criterium "0.3.1"]
:unsigned [enlive "1.0.1"]
:signed [org.clojure/tools.macro "0.1.1"]
:signed [org.clojure/clojure "1.5.0"]
:bad-signature [thornydev/go-lightly "0.4.0"]我看到我的(go-lightly)被标记为有一个糟糕的签名,所以现在我需要找出原因。Clojars站点没有告诉我这一点(或者至少我不知道去哪里找它),所以我认为使用lein deps :verify是更好的答案。
Clojars更新这个糟糕的签名是因为我在升级之后试图重新部署一个库(相同版本),发现了Clojars系统(目前正在修复)中的一个bug。
如果你得到了一个:bad-signature,你需要重新部署到Clojars (在Clojars的人移除坏的库之后)。然后,为了检查签名是否正确,请确保从本地的~/.m2存储库中删除该库,以便下载新的库并检查签名是否有效。
发布于 2013-03-03 08:08:29
在控制面板上登录到clojars
如果jar未签名,您将看到如下消息:
https://stackoverflow.com/questions/15168512
复制相似问题