KB: Zelfinhoudsproces
Hoe triggerfish update werkt, wat er mis kan gaan en hoe te herstellen.
Hoe het werkt
De updateopdracht downloadt en installeert de nieuwste release van GitHub:
Versiecontrole. Haalt de nieuwste release-tag op via de GitHub API. Als u al de nieuwste versie heeft, wordt het proces vroegtijdig beëindigd:
Already up to date (v0.4.2)Ontwikkelbuilds (
VERSION=dev) slaan de versiecontrole over en gaan altijd door.Platformdetectie. Bepaalt de juiste naam van het binaire bestand op basis van uw besturingssysteem en architectuur (linux-x64, linux-arm64, macos-x64, macos-arm64, windows-x64).
Downloaden. Haalt het binaire bestand en
SHA256SUMS.txtop uit de GitHub-release.Checksumverificatie. Berekent SHA256 van het gedownloade binaire bestand en vergelijkt dit met de invoer in
SHA256SUMS.txt. Als de checksums niet overeenkomen, wordt de update afgebroken.Daemon stoppen. Stopt de lopende daemon voordat het binaire bestand wordt vervangen.
Binair bestand vervangen. Platformspecifiek:
- Linux/macOS: Hernoemt het oude binaire bestand, verplaatst het nieuwe naar de juiste locatie
- macOS extra stap: Verwijdert quarantaine-attributen met
xattr -cr - Windows: Hernoemt het oude binaire bestand naar
.old(Windows kan een actief uitvoerbaar bestand niet overschrijven) en kopieert vervolgens het nieuwe binaire bestand naar het oorspronkelijke pad
Daemon herstarten. Start de daemon opnieuw met het nieuwe binaire bestand.
Changelog. Haalt releasenotes op voor de nieuwe versie en toont deze.
Sudo-escalatie
Als het binaire bestand is geïnstalleerd in een directory waarvoor roottoegang vereist is (bijv. /usr/local/bin), vraagt het updateprogramma om uw wachtwoord om te escaleren met sudo.
Bestandssysteemgrens-verplaatsingen
Als de downloaddirectory en de installatiedirectory zich op verschillende bestandssystemen bevinden (gebruikelijk bij /tmp op een aparte partitie), mislukt de atomische hernoeming. Het updateprogramma valt dan terug op kopiëren-dan-verwijderen, wat veilig is maar beide binaire bestanden kort op schijf heeft.
Wat er mis kan gaan
"Checksum verification exception"
Het gedownloade binaire bestand komt niet overeen met de verwachte hash. Dit betekent doorgaans:
- De download is beschadigd (netwerkprobleem)
- De release-assets zijn verouderd of gedeeltelijk geüpload
Oplossing: Wacht een paar minuten en probeer het opnieuw. Als het aanhoudt, download het binaire bestand dan handmatig van de releasespagina.
"Asset not found in SHA256SUMS.txt"
De release is gepubliceerd zonder een checksum voor uw platform. Dit is een probleem in de release-pipeline.
Oplossing: Dien een GitHub issue in.
"Binary replacement failed"
Het updateprogramma kon het oude binaire bestand niet vervangen door het nieuwe. Veelvoorkomende oorzaken:
- Bestandsmachtigingen (binair bestand is eigendom van root maar u draait als gewone gebruiker)
- Bestand is vergrendeld (Windows: een ander proces heeft het binaire bestand geopend)
- Alleen-lezen bestandssysteem
Oplossing:
- Stop de daemon handmatig:
triggerfish stop - Beëindig eventuele verouderde processen
- Probeer de update opnieuw met de juiste machtigingen
"Checksum file download failed"
SHA256SUMS.txt kan niet worden gedownload van de GitHub-release. Controleer uw netwerkverbinding en probeer het opnieuw.
Windows .old-bestandsopruiming
Na een Windows-update wordt het oude binaire bestand hernoemd naar triggerfish.exe.old. Dit bestand wordt automatisch opgeruimd bij de volgende start. Als dit niet wordt opgeruimd (bijv. als het nieuwe binaire bestand crasht bij opstarten), kunt u het handmatig verwijderen.
Versievergelijking
Het updateprogramma gebruikt semantische versievergelijking:
- Verwijdert het voorvoegsel
v(zowelv0.4.2als0.4.2worden geaccepteerd) - Vergelijkt hoofd-, minor- en patchnummers
- Pre-releaseversies worden afgehandeld (bijv.
v0.4.2-rc.1)
Handmatige update
Als het automatische updateprogramma niet werkt:
- Download het binaire bestand voor uw platform van GitHub Releases
- Stop de daemon:
triggerfish stop - Vervang het binaire bestand:bash
# Linux/macOS sudo cp triggerfish-linux-x64 /usr/local/bin/triggerfish sudo chmod +x /usr/local/bin/triggerfish # macOS: verwijder quarantaine xattr -cr /usr/local/bin/triggerfish - Start de daemon:
triggerfish start
Docker-update
Docker-implementaties gebruiken het binaire updateprogramma niet. Werk de container-image bij:
bash
# Via het wrapperscript
triggerfish update
# Handmatig
docker compose pull
docker compose up -dHet wrapperscript haalt de nieuwste image op en herstart de container als die actief is.
Changelog
Na een update worden releasenotes automatisch weergegeven. U kunt deze ook handmatig bekijken:
bash
triggerfish changelog # Huidige versie
triggerfish changelog --latest 5 # Laatste 5 releasesAls het ophalen van de changelog mislukt na een update, wordt dit gelogd maar heeft het geen invloed op de update zelf.
