Dpkg
如何正確簽署我修改和重新編譯的包?
我
dpkg-buildpackage
在獲得一個apt-get source nginx
nginx 的反向移植版本並修改debian/rules
以包含 uwsgi 模組後執行。該命令的最後結果是:dpkg-deb: building package `nginx' in `../nginx_0.7.67-3~bpo50+1_i386.deb'. dpkg-deb: building package `nginx-dbg' in `../nginx-dbg_0.7.67-3~bpo50+1_i386.deb'. signfile nginx_0.7.67-3~bpo50+1.dsc gpg: keyring `/home/shogun/.gnupg/secring.gpg' created gpg: skipped "Faidon Liambotis <paravoid@debian.org>": secret key not available gpg: [stdin]: clearsign failed: secret key not available dpkg-genchanges >../nginx_0.7.67-3~bpo50+1_i386.changes dpkg-genchanges: warning: the current version (0.7.67-3~bpo50+1) is smaller than the previous one (0.7.67-3) dpkg-genchanges: not including original source code in upload dpkg-buildpackage: binary and diff upload (original source NOT included) dpkg-buildpackage: warning: Failed to sign .dsc and .changes file
它抱怨因為我不是包的原始維護者,所以我的密鑰不匹配。
這真的有必要嗎?如果是這樣,我怎樣才能讓它使用我的密鑰進行 gpg 匹配?
如果您為自己的私人使用而建構它們,則不需要 PGP 簽名 Debian 軟體包。這只是(官方)Debian 開發人員在將新軟體包上傳到 Debian“不穩定”分支時常用的身份驗證方法。
為避免錯誤消息,只需使用:
dpkg-buildpackage -uc -us
(另見 dpkg-buildpackage 的手冊頁)
當您製作不同版本的包時(就像您所做的那樣,因為您更改了建構規則),您確實應該添加一個更改日誌條目。這樣,您的包將具有不同的版本號(因此您會立即知道它不是發行版中的標準包),並且您將跟踪您所做的更改。
編輯
debian/changelog
,並添加一個模仿現有條目格式的條目。從今天開始日期,並選擇一個版本號like 0.7.67-3~bpo50+meder1
(你想要一些dpkg --compare-versions
表明你的版本更新的東西)。將您的電子郵件地址作為維護者;這樣,您就可以清楚地表明這是您修改的軟體包,並且dpkg-buildpackage
會詢問您的 GPG 密碼。如果您是 Emacs 使用者,請安裝該
dpkg-dev-el
軟體包,然後使用C-c C-a
和C-c C-c
命令添加和完成您的更改日誌條目。