如何从使用 dpkg-sig 的 gpg 密钥签名的 deb 包中删除签名?
我有一个特定的 apt 存储库,通过研究和测试,我可以手动签署我的 deb 包。
我在一个软件包上测试了它,并用同一个密钥对其进行了多次签名。现在 deb 软件包上有三个签名。
用于签署包的命令是:
dpkg-sig -k ######## --sign bulder xul-ext-ubufox_3.0-0ubuntu0.14.10.1_all.deb
答案1
我不确定是否有更好的方法,但至少你可以使用以下命令“手动”删除签名ar
:
ar d "$yourpackage.deb" _gpgbuilder
(或者除此之外,_gpgbuilder
如果您通过提供“建造者”以外的角色名称来实现“三个签名”,则可以添加其他内容)。
这是可行的,因为最外层的 .deb 文件本质上只是“ar”档案,而嵌入的 deb 签名存储在最外层。使用 dpkg 创建的 .deb 和使用 ar 创建的 .deb 之间有一点不同,因此在操作 deb 文件时,通常最好坚持使用真正的 dpkg 工具,但所有现代工具(据我所知)都可以很好地处理这两种文件。
答案2
对于嵌入式签名,您可以.deb
使用 打开文件file-roller
,然后删除嵌入式签名文件。您也可以将 ar 与 一起使用ar d package.deb _gpgbuilder
。
对于分离的签名,您只需xul-ext-ubufox_3.0-0ubuntu0.14.10.1.dsc
在文本编辑器中打开文件,然后就可以从文件底部删除多余的签名块。
如果您对源包也执行了相同的操作,则可以对文件执行类似的操作_source.changes
。