Fehler im sks-Paket von Ubuntu 20.04 LTS

Fehler im sks-Paket von Ubuntu 20.04 LTS

Das in Ubuntu 20.04 LTS enthaltene sks-Paket weist einen kleinen, aber kritischen Fehler auf. Es versucht immer wieder, seine Socket-Dateien in /var/run/sks zu schreiben. Ein solches Verzeichnis gibt es jedoch nicht. Erstens wurde /var/run nach /run verschoben, und zweitens hätte /run als tmpfs nicht unbedingt ein sks-Verzeichnis, es sei denn, es wurde zuvor erstellt.

Im Moment habe ich das umgangen, indem ich einen zusätzlichen Dienst für sks und sks-recon erstellt habe, der einfach prüft, ob /var/run existiert. Wenn nicht, erstellt er einen symbolischen Link von /run zu /var/run, schaut dann, ob /var/run/sks existiert, und erstellt es, wenn nicht, und ändert seinen Besitzer in den Debian-sks-Benutzer, unter dem sks ausgeführt wird.

Ich wäre dankbar, wenn jemand solche Ideen tatsächlich an die Paketbetreuer weiterleiten könnte. Ich habe SEHR lange gebraucht, um herauszufinden, dass ein nicht vorhandenes Verzeichnis der Grund dafür ist, dass SKS sich immer wieder beschwert, dass es keinen Socket binden kann und dass dies wahrscheinlich bereits ein anderer Prozess getan hat.

Hier ist das Skript, das ich schnell zusammengebastelt habe. Funktioniert für mich ganz gut, könnte aber wahrscheinlich noch verbessert werden.

#!/bin/sh
[ -d /var/run ] || ln -s /run /var/run
if [ ! -d /run/sks ]; then
  mkdir /run/sks
  chown debian-sks:debian-sks /run/sks
  chmod 770 /run/sks ;
fi

und hier ist die systemd-Servicedatei zum Starten:

[Unit]
Description=Directory Maker for SKS - Work around for bug in SKS code that insists on placing files in /var/run/sks
After=network.target
before=sks.service sks-recon.service
StartLimitIntervalSec=0

[Service]
Type=oneshot
User=root
ExecStart=/var/lib/sks/sksdirmaker.sh

[Install]
WantedBy=multi-user.target

Vielleicht ein hässlicher Workaround, aber es funktioniert. Ich habe es getestet, indem ich zuerst sichergestellt habe, dass es keinen /var/run-Symlink oder kein /run/sks-Verzeichnis gibt, dann habe ich Folgendes ausgeführt: systemctl start sks sks-dirmaker sks-recon

Das Ergebnis war, dass die Verzeichnisse vorhanden waren und SKS problemlos geladen wurde.

verwandte Informationen