
Ich stoße auf diesen Fehler, wenn ich eine RPM-Datei signiere. Wie Sie sehen, habe ich nicht viel, womit ich weitermachen könnte, und Google scheint nichts gefunden zu haben. Ich bin ratlos!
Weiß jemand, woran das liegt? Ich vermute, es versucht, irgendwo eine Art temporäre Datei zu erstellen.
$: rpm -D "_gpg_name rpmbuilder" --addsign Ausgaben/sllop-0.0.6-1.x86_64.rpm --verbose --debug Geben Sie die Passphrase ein: Die Passphrase ist gut. Ausgaben/sllop-0.0.6-1.x86_64.rpm: D: Erwartete Größe: 51827 = lead(96)+sigs(180)+pad(4)+data(51547) D: Tatsächliche Größe: 51827 D: GPG-Signaturgröße: 72 D: Habe 72 Byte GPG-Signatur erhalten D: GPG-Signaturgröße: 72 D: Habe 72 Byte GPG-Signatur erhalten Fehler: rpmMkTemp ist fehlgeschlagen
Antwort1
Ich beantworte das selbst, falls jemand anderes dadurch verwirrt wird.
Diese Fehlermeldung erwies sich als etwas irreführend. Es handelte sich tatsächlich um ein Berechtigungsproblem (wie erwartet), aber nicht bei einem der temporären Verzeichnisse, die mit den RPM-Variablen in Zusammenhang standen.
Verwendung von strace mit
strace -p `ps --no-headers -fC rpmsign | awk '{print $2}'` -e trace=öffnen,schließen
Strace hat gezeigt, dass es nach der ganzen Arbeit im temporären Verzeichnis (in diesem Fall /var/tmp) versucht hat, eine geänderte Version des RPM im selben Verzeichnis wie das RPM zu erstellen, bevor es (nehme ich an) an die richtige Stelle verschoben wurde.Dasrpm war das „temporäre“ Objekt, auf das es sich bezog.
Nach all dem stellte sich heraus, dass dieser Benutzer beim Signieren einfach keine Schreibberechtigung für den Speicherort des RPM hatte.
Pfui.