web-dev-qa-db-fra.com

J'ai signé plusieurs fois un package deb, comment puis-je supprimer une signature?

Comment puis-je supprimer des signatures d'un paquet deb signé avec une clé gpg par dpkg-sig?

J'ai un référentiel apt particulier que j'ai mis en place, qui, grâce à la recherche et aux tests, m'a conduit à signer manuellement mes packages deb.

Je l'ai testé sur un package et l'ai signé plusieurs fois avec la même clé. Maintenant, il y a trois signatures enroulées autour du paquet deb.

La commande utilisée pour signer le package était:

dpkg-sig -k ######## --sign bulder xul-ext-ubufox_3.0-0ubuntu0.14.10.1_all.deb
1
naisanza

Je ne sais pas s'il y a une meilleure façon, mais au moins vous pouvez supprimer la signature "manuellement" avec ar:

ar d "$yourpackage.deb" _gpgbuilder

(ou d'autres choses en plus de _gpgbuilder si vous avez réussi à avoir "trois signatures" en donnant des noms de rôle autres que "constructeur").

Cela fonctionne parce que les fichiers .deb, à la couche la plus externe, sont essentiellement des archives "ar" et que les signatures deb intégrées sont stockées dans cette couche la plus externe. Il y a une petite différence entre les .debs créés avec dpkg et ceux créés avec ar, donc normalement c'est une bonne idée de s'en tenir aux vrais outils de dpkg lors de la manipulation des fichiers deb, mais tous les outils modernes (afaik) peuvent gérer les deux très bien.

3
the paul

Pour les signatures intégrées, vous pouvez ouvrir le .deb fichier avec file-roller, et supprimez le fichier de signature incorporé. Vous pouvez également utiliser ar avec ar d package.deb _gpgbuilder.

Pour les signatures détachées, vous pouvez simplement ouvrir le xul-ext-ubufox_3.0-0ubuntu0.14.10.1.dsc dans un éditeur de texte et devrait pouvoir supprimer les blocs de signature supplémentaires en bas du fichier.

Si vous avez également fait la même chose pour le package source, vous pouvez effectuer une action similaire sur le _source.changes fichier.

0
dobey