Ich versuche Kairo mit Debuild zu bauen.
Ich komme zum Ende und diese Nachricht:
gpg: skipped "Robert Ancell <[email protected]>": secret key not available
Da ich nicht Robert Ancell bin, ist dies sinnvoll - wie kann ich meinen eigenen Schlüssel verwenden?
gpg --list-key outputs:
$ gpg --list-key /home/stu/.gnupg/pubring.gpg
----------------------------
pub 1024R/2ADA7053 2009-05-04 uid Launchpad PPA for Aleksander Morgado
pub 2048R/17F35B46 2015-01-28 uid Stuart Axon
<[email protected]> uid Launchpad PPA for Stuart
Axon <[email protected]> sub 2048R/B8E8ED59 2015-01-28
und ich habe env var:
DEBSIGN_KEYID=17F35B46
-us -uc
Flags hinzuzufügen .debuild -us -uc
, aber ich denke, das ist für einen nicht signierten Build? Ich möchte meine eigene PPA erstellen, die meiner Meinung nach einen signierten Build benötigt (?) - also habe ich versucht, eine einfache zu verwendendebuild
dch -i
, um die Version zu aktualisieren + das Änderungsprotokoll zu bearbeiten .. (?)Antworten:
debuild fragt nach dem Schlüssel des Benutzers, der das Änderungsprotokoll zuletzt bearbeitet hat. Wenn Sie auf eine PPA hochladen, muss sich Ihr Paket von dem Äquivalent unterscheiden, das sich derzeit in den Repositorys befindet. Daher sollten Sie das Änderungsprotokoll bearbeitet haben.
Verwenden Sie
dch
diese Option, um die Version und das Änderungsprotokoll zu aktualisieren und anschließend neu zu erstellen. debuild wird nach deinem Schlüssel fragen. (Wenn Sie sich nicht sicher sind, welche Versionsnummern Sie verwenden sollen, lesen Sie die Launchpad-Hilfedokumente. )quelle
Ich bin derzeit mit Xubuntu 16.04 „Xenial Xerus“ und wurde das gleiche Problem auftritt: beide
debuild
unddebsign
wurden diese Rückkehr geheimen Schlüssel nicht verfügbar Fehler, obwohl ich einen lokalen Schlüssel erzeugen tat und durch die Art , wie ich es in die hochgeladen hatte Ubuntu Keyserver auch .Ich hatte bereits versucht, meinen Schlüssel mithilfe der
-k
Option manuell festzulegen. Ich habe auch meinen Schlüssel als Standardschlüssel festgelegt unddebian/changelog
unter anderem die Datei bearbeitet , aber nichts hat funktioniert: Ich habe immer noch den gleichen Fehler erhalten.... dann wurde mir klar, dass ich meinen Schlüssel mit gpg2 anstelle von gpg erstellt hatte . Rate was ich getan habe?
Zuerst habe ich ein Shell-Terminalfenster geöffnet und die gpg-Binärdatei umbenannt:
Dann habe ich einen
gpg
symbolischen Link erstellt, der auf diegpg2
Binärdatei verweist :Nachdem ich dies tat, Befehle wie
debuild -S -sa
,debsign some-file_source.changes
et cetera schließlich arbeitete.Ich weiß nicht genau, was falsch
debuild
istdebsign
,dpkg-buildpackage
usw., aber ich habe den Eindruck, dass sie Parameter senden,gpg
obwohl sie nurgpg2
solche Parameter analysieren ("verstehen") können. Daher löst das Herstellen einer symbolischen Verknüpfung (um eine gefälschte gpg-Binärdatei zu erstellen, auf der die gpg2-Binärdatei tatsächlich ausgeführt wird) das Problem.Es gibt jedoch elegantere Möglichkeiten,
debsign
die Verwendung zu erzwingengpg2
:-pgpg2
Optiondebsign
.DEBSIGN_PROGRAM=gpg2
in/etc/devscripts.conf
oder~/.devscripts
.quelle
debuild
unddebsign
sind Teil des devscripts- Pakets, währenddpkg-buildpackage
es Teil des dpkg-dev- Pakets ist. In Ubuntu-Distributionen werden sowohl devscripts als auch dpkg-dev von Ubuntu-Entwicklern <[email protected]> verwaltet. Eine gute Möglichkeit, Fehler in diesen Paketen zu melden, besteht darin, apport: auszuführenapport-bug devscripts
, um einen Fehler zu erstellen Bericht für Devskripte auf Launchpad undapport-bug dpkg-dev
dasselbe für dpkg-dev auf Launchpad.Verwenden Sie die
-k
Option, um anzugeben,debuild
welcher Schlüssel verwendet werden soll, zBeachten Sie, dass zwischen der
-k
und der Schlüssel-ID kein Leerzeichen zulässig ist .quelle
Zunächst müssen Sie bei jeder Paketrevision das Änderungsprotokoll bearbeiten. Dies ist eine Voraussetzung, wenn Sie Änderungen am Paket vornehmen. Sie können solche Änderungsprotokolle mit hinzufügen
dch
, wie Seth vorschlägt.Wenn Sie jedoch nur versuchen, ein Paket zu erstellen, das keine zusätzlichen Änderungen enthält , sodass Sie das Paket einfach installieren können, müssen Sie das Änderungsprotokoll nicht bearbeiten, sondern lediglich das Problem mit dem Signaturschlüssel beheben.
Um Seth zu zitieren,
debuild
wird der Schlüssel basierend auf dem letzten Änderungsprotokoll-Editor bestimmt. Dies erfolgt automatisch, und Sie müssen das Änderungsprotokoll aktualisieren, um Ihre Anmeldeinformationen am Ende des letzten Änderungsprotokolleintrags darin zu verwenden.Wie von Florian angegeben, können Sie jedoch auch die
-kKEYIDNUM
Option verwenden,debuild
um anzugeben, mit welchem Schlüssel signiert werden soll, und die Verwendung dieses Schlüssels erzwingen.Und jetzt meine Lösung für beide Probleme, Dinge automatisch mit dem Schlüssel signieren zu lassen, mit dem ich signieren möchte ...
Am längsten stieß ich auf dieses Problem, wenn meine alten Festplatten auf meinem vorherigen System ausfielen. Ich wollte das nicht
changelog
jedes Mal wirklich bearbeiten , noch wollte ich die-k
Option wirklich jedes Mal manuell an übergebendebuild
.Schließlich halfen mir MOTUs, das Problem zu lösen, indem sie explizit spezifizierten, mit welchem Schlüssel signiert werden soll, indem sie mich vorstellten
.devscripts
, welchedebuild
und andere Umgebungsvariablen mit darin definierten Dingen aufrufen; Dadurch konnte ich Optionen hinzufügendpkg-buildpackage
, die beidebuild
Anrufen immer angehängt werden.Damit die
-k
Option für jede einzelne Ausführung automatisch funktioniertdebuild
, können Sie diese zu Ihrer~/.devscripts
Datei hinzufügen und die-k
Option automatisch wie folgt hinzufügen :Dadurch wird es dauerhaft zu den
debuild
Optionen hinzugefügt . Auf diese Weise können Sie auch sicherstellen, dass Ihr Schlüssel immer zum Signieren verwendet wird.Dies hilft mir sowohl bei Ubuntu-Uploads als auch bei PPA-Uploads.
quelle