2013-03-01 88 views
2

我最近爲Clojars部署了一個圖書館,並試圖確保它已簽名,但看不到任何這種或那種方式的證據。如何判斷我的圖書館是否在Clojars上簽名?

下面是我遵循的步驟:

我已經安裝了GPG(Linux系統)運行,GPG代理,並已生成的公鑰/私鑰對。我在註冊時還將我的GPG公鑰添加到了Clojars。

我創建〜/ .lein/credentials.clj有:

{#"https://clojars.org/repo" 
    {:username "midpeter444" :password "passw0rd"}} 

我然後跑:

gpg --default-recipient-self -e ~/.lein/credentials.clj > ~/.lein/credentials.clj.gpg 

,然後刪除〜/ .lein/credentials.clj

在我的lein項目目錄,我跑了:

lein deploy clojars 

它促使我兩次(通過gpg-agent)輸入我的密碼,然後將它上傳到Clojars。

所以它看起來很有效,但是當我從Clojars下載它後,在Clojars站點或圖書館查看我的圖書館時,我看不到任何證據表明它已簽名或失敗。

我是否需要做其他事情,比如在project.clj中添加一個註釋以便以某種方式簽名?

回答

1

研究它更多一些,雷音2會自動如果您已將PGP公鑰到您Clojars帳號登入你的罐子後。如果您運行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"] 

我看到我的(去,輕輕地)被標記爲壞標記,所以現在我需要找出原因。 Clojars網站沒有告訴我這個(或者至少我不知道在哪裏尋找它),所以我認爲使用lein deps :verify是更好的答案。

[更新]:的壞標記出現,因爲我試圖重新部署庫(版本相同)我已經提升了,在Clojars系統揭示一個bug(目前是固定的)。

如果你確實得到了:bad-signature,你需要重新部署到Clojars(在Clojars傢伙移除壞lib之後)。然後要檢查簽名是否正確,請確保從本地〜/ .m2倉庫中刪除該倉庫,以便下載新倉庫並檢查有效簽名。

2
  • 登錄clojars
  • 一旦在儀表板上,點擊問題庫
  • 檢查推廣部分

如果罐子沒有簽名,你會看到一條消息,如:

  • /home/clojars/repo/blah/blah/0.0.1/blah-0.0.1.jar 未簽名。
+0

感謝您的提示。我的Clojars升級部分只是說「scm失蹤」,所以我在我的project.clj中修復了這個問題,重新部署到了Clojars,按下了出現的「Promote」按鈕,現在它說「Promoted at Sun Mar 03 01:40:12 UTC 2013" 。如果它說「(簽名)」或明確指出它是什麼,它會更好。 – quux00 2013-03-03 01:42:52

相關問題