Ich lief, dpkg-buildpackage
nachdem ich eine apt-get source nginx
Backports-Version von nginx erhalten und debian/rules
das uwsgi-Modul hinzugefügt hatte. Die letzten Ergebnisse des Befehls waren:
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 <[email protected]>": 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
Es wird beanstandet, dass mein Schlüssel nicht übereinstimmt, da ich nicht der ursprüngliche Betreuer des Pakets bin.
Ist das wirklich notwendig und wenn ja, wie kann ich dafür sorgen, dass meine Schlüssel für den GPG-Abgleich verwendet werden?
ls -al
. Es konnte sie nicht erstellen, weil die Überprüfung des GPG fehlgeschlagen ist, oder? Das heißt, mit Ihrem neuen Befehl sollte es sie erstellen? Oder irre ich mich?Wenn Sie eine andere Version eines Pakets erstellen (wie Sie es getan haben, da Sie die Erstellungsregeln geändert haben), sollten Sie wirklich einen Changelog-Eintrag hinzufügen. Auf diese Weise hat Ihr Paket eine andere Versionsnummer (sodass Sie sofort wissen, dass es sich nicht um das Standardpaket aus der Distribution handelt), und Sie haben eine Spur dessen, was Sie geändert haben.
Bearbeiten
debian/changelog
und fügen Sie einen Eintrag hinzu, der das Format vorhandener Einträge imitiert. Nehmen Sie das Datum von heute an und wählen Sie eine Versionsnummerlike 0.7.67-3~bpo50+meder1
(Sie möchten etwas, dasdpkg --compare-versions
besagt, dass Ihre Version aktueller ist). Geben Sie Ihre E-Mail-Adresse als Betreuer an. Auf diese Weise haben Sie einen klaren Hinweis darauf, dass es sich um ein von Ihnen geändertes Paket handelt, unddpkg-buildpackage
werden nach Ihrer GPG-Passphrase gefragt.Wenn Sie ein Emacs - Nutzer sind, installieren Sie das
dpkg-dev-el
Paket, und verwenden Sie dieC-c C-a
undC-c C-c
Befehle Ihre Changelog - Eintrag hinzuzufügen und abzuschließen.quelle
Während das Signieren eines Pakets nicht erforderlich ist und die
-uc -us
Optionen verwendet werden können, um diesen Schritt zu vermeiden, kann es auch hilfreich sein, ein Paket zu signieren, insbesondere wenn andere es verwenden oder Sie es über unsichere Kommunikationspfade senden. Und es ist überhaupt nicht schwer.Informationen zum Generieren einer guten Signatur finden Sie auf der Manpage für dpkg-buildpackage . Standardmäßig signiert es Pakete mit gpg. Aus den Fehlermeldungen geht hervor, dass Sie noch keinen gpg-Schlüssel generiert haben. Anweisungen und Hintergrundinformationen finden Sie z. B. in der Dokumentation zu GnuPrivacyGuardHowto - Community Ubuntu .
Wie @Gilles bemerkt, sollten Sie auch die Versionsnummer des Pakets über die Changelog-Datei ändern und die E-Mail-Adresse für den von Ihnen verwendeten gpg-Schlüssel angeben. Eine einfache Möglichkeit besteht darin, einfach den
dch --local foo
Befehl auszuführen , wobei "foo" ein Schlüsselwort für die Änderung ist. Wenn Sie dies wirklich nicht tun möchten und einen anderen Betreuer oder Uploader-Namen / eine andere Adresse oder einen bestimmten Schlüssel zum Signieren angeben müssen, können Sie beim Erstellen auch die Option-m
,-e
oder-k
verwenden.Weitere Tipps finden Sie unter Howto zum Neuerstellen von Debian-Paketen .
Der knifflige Teil entsteht, wenn jemand versucht zu entscheiden, ob ein bestimmtes Paket von jemandem signiert ist, dem er vertraut. Schauen Sie sich das PGP-Web of Trust an, um die subtilen Probleme zu lösen.
quelle