Software updaten met Topgrade: alle software ineens

Noud van Kruysbergen
0

Inhoudsopgave

Op een desktopcomputer staat meestal software uit verschillende bronnen. Voor het updaten van alle onderdelen moet je dan verschillende update­-programma’s handmatig starten. Topgrade doet de updates voor Linux, macOS en Windows echter allemaal in één keer. Zo kun je makkelijker de software updaten.

De ingebouwde update-service van Windows houdt het besturingssysteem op de laatste stand, bij Linux werkt de eigen package-­manager het systeem bij. Met Flatpak en Snap is daar inmiddels ook software uit andere bronnen bijgekomen die ook up-to-date moet worden gehouden. En als je met Python-programma’s werkt, gebruik je meestal ook nog de pakketmanager Pip. Die installeert op zijn beurt de Python-modules buiten de updatefunctie van het besturingssysteem om. Analoog geldt hetzelfde voor onder meer Node.js-, R- en Ruby-pakketten. In het ergste geval moet je meteen meerdere pakketmanagers handmatig starten om het complete systeem op de nieuwste stand te brengen.

In die situatie schiet de tool Topgrade je te hulp. Hij start alle op het systeem aanwezige update­functies achter elkaar. Bij Linux wordt het systeem bijvoorbeeld eerst geüpdatet via de pakket­beheerder en daarna alle Python-modules met Pipx. Bij Windows start Topgrade eerst Windows Update wanneer de PowerShell-module PSWindowsUpdate geïnstalleerd is. Topgrade werkt ook andere PowerShell-­modules bij of software die via Chocolatey en Scoop geïnstalleerd is.

Topgrade ondersteunt momenteel Windows, ­macOS, FreeBSD, DragonFly BSD en ook enkele Linux-­distributies. Bij die laatste zitten Arch Linux, Red Hat, Debian, Clear Linux, Gentoo, NixOS, openSUSE, Void Linux en Raspbian – evenals hun afgeleiden. Op andere systemen moet je er rekening mee houden dat Topgrade niet alle componenten zal updaten.

software updaten alles DEB Snap pakketten Ubuntu Topgrade

Onder Ubuntu werkt Topgrade zowel de DEB- als eventueel geïnstalleerde Snap-pakketten bij.

Klaar voor updaten

Op Arch Linux en NixOS kun je Topgrade via de ingebouwde pakketbeheerder installeren, voor andere Linux-distributies en Windows is een 64-bit versie beschikbaar op GitHub. Gebruik onder macOS homebrew voor de installatie of download het programma van de projectwebsite. Het bij je systeem passende archiefbestand hoef je alleen nog op de harde schijf uit te pakken.

Topgrade hoeft niet geïnstalleerd te worden, je kunt het uitvoerbare bestand direct starten. Bij Linux ga je in een terminalvenster naar de directory van de uitgepakte tool en typ je ./topgrade in. Bij Windows kun je topgrade.exe het beste starten vanaf een Opdrachtprompt om de uitvoer van het programma te zien. Als Topgrade onder Windows niet werkt en verwijst naar het bestand VCRUNTIME140.dll, dan moet je de Visual C++ redistributable installeren. Als je de terminal-multiplexer Tmux gebruikt, voeg dan de parameter -t toe.

Voor sommige upgrades moet Topgrade de hulp inroepen van andere tools en kan hij het niet alleen af. Om bijvoorbeeld de Python-modules te upgraden die met pip zijn geïnstalleerd, moet het programma pipx geïnstalleerd zijn. Topgrade maakt daar echter geen enkele melding van. Voor systeem- en pakketupdates onder Arch Linux gebruikt Topgrade de AUR-wrapper yay. Ontbreekt die, dan gebruikt het programma de pakketmanager pacman. Maar software geïnstalleerd via AUR valt dan buiten de boot.

Indien nodig vraagt Topgrade om de benodigde wachtwoorden, bijvoorbeeld die van de systeembeheerder. Vragen van de pakketmanagers geeft Topgrade aan je door. Met de parameter -y kun je automatisch akkoord gaan met alle vragen, maar die functie wordt beschouwd als experimenteel en kun je op een productiesysteem maar beter niet gebruiken. Als je het upgraden wilt annuleren, druk je twee keer op Ctrl+C.

Met de parameter –dry-run vertelt Topgrade je welke acties hij op je systeem wil gaan uitvoeren, maar doet dat nog niet. Als je Topgrade net geïnstalleerd hebt, moet je dat beslist uitproberen om ervoor te zorgen dat Topgrade geen updates uitvoert die je liever handmatig wilt doen.

Je kunt de tool expliciet verbieden om een of meer acties uit te voeren. Om dat te doen, voeg je de parameter –disable toe. Die wordt gevolgd door een of meer afkortingen, gescheiden door komma’s, die staan voor de bijbehorende acties. Voorbeeld: node slaat op het updaten van de Node.js-­modules met npm. Dus met het commando topgrade –disable node slaat de tool Node.js-­modules over tijdens het updaten. Alle beschikbare afkortingen vind je met topgrade –help.

software updaten alles Linux pakketbeheer Topgrade

Als je alleen naar updates wilt zoeken voor alles wat niet uit het Linux-pakketbeheer komt, kun je die stap met de parameter ‘–disable system’ uitschakelen.

Als je afzonderlijke stappen permanent wilt overslaan, kun je dat vastleggen in het configuratiebestand van Topgrade. Daarvoor maak je een nieuw bestand aan met een teksteditor en sla je het op als ~/.config/topgrade.toml op een Unix- en Linux-­systeem. Bij Windows doe je dat als %APPDATA%/topgrade.toml en op een macOS-systeem bewaar je het bestand als ­
~/Library/Preferences/topgrade.toml. Daar heeft Top­grade wellicht al een voorbeeldbestand aangemaakt, dat je dan simpelweg kunt aanpassen. Met de regel disable = [“firmware”] kun je dan bijvoorbeeld de automatische firmware-­upgrades verhinderen.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

Updates verder aanpassen

Ook al belooft Topgrade een allesomvattende update, hij kan alleen de bij hem bekende pakket­beheerders aan het werk zetten. Zo negeert de tool bijvoorbeeld bestaande Docker-containers. Welke acties Topgrade uitvoert op welk besturings­systeem is te vinden in een lange lijst waar naar gelinkt wordt op de GitHub-pagina bij het deel Usage.

Heel handig is dat Topgrade willekeurige andere programma’s kan aanroepen en dus ook Docker. Voeg de volgende twee regels toe aan het configuratiebestand:

[commands]
“Docker” = “/usr/bin/docker pull alpine”

Elke regel onder [commands] bevat een commando dat Topgrade gaat uitvoeren nadat alle andere updates gedaan zijn. Een regel bevat een korte beschrijving tussen aanhalingstekens, gevolgd door een isgelijkteken en het commando zelf. Als Top­grade een commando voor alle updates moet uitvoeren, maak je op dezelfde manier de sectie [pre_commands] aan.

Eventueel kan Topgrade ook Git-repositories bijwerken (via het pull-commando). Daarvoor voeg je een sectie zoals hieronder toe aan het begin van het configuratiebestand:

git_repos = [
“~/ct-Pi-wekkerradio”,
“~/ct/*”
]

Binnen de vierkante haken staan de mappen op je eigen harde schijf waar zich een Git-repository bevindt, steeds gescheiden door een komma. Wildcards zijn ook toegestaan, ~/ct/* werkt bijvoorbeeld alle projecten in de subdirectories van ~/ct bij.

Updaten op afstand

Topgrade kan via ssh inloggen op een of meer externe computers en de daar geïnstalleerde top­grade aanroepen. In het ideale geval is zo’n aanroep voldoende om alle systemen bij te werken naar de laatste stand.

Je moet er dan wel eerst voor zorgen dat Topgrade op alle betrokken systemen direct met topgrade kan worden gestart. Kopieer het programma bij Linux bijvoorbeeld met root-rechten naar /usr/local/bin of voeg de map waar Topgrade in staat toe aan de omgevingsvariabele PATH. Voeg dan de volgende regels toe aan het begin van het configuratie­bestand:

remote_topgrades = [“tim@marvin”, “192.168.1.102”]
ssh_arguments = “-o ConnectTimeout=2”

De IP-adressen of hostnamen van de te updaten systemen staan tussen vierkante haken, gescheiden door komma’s, en de gebruikersnaam zo nodig voor de @. Topgrade geeft de parameters tussen de aanhalingstekens in de optionele tweede regel door aan de SSH-client bij het tot stand brengen van een verbinding.

Wanneer je de experimentele parameter –only gebruikt, verbiedt Topgrade bij het updaten van het remote systeem alle acties, behalve degene die er expliciet achter vermeld staan. De acties die je dan wel wilt laten uitvoeren moeten op dezelfde manier worden vermeld als bij –disable, met hun juiste afkortingen.

De documentatie voor Topgrade is helaas beperkt tot topgrade –help, maar meer informatie vind je in de commentaren in de voorbeeldconfiguratie en op de Github-pagina.

(Tim Schürmann en Noud van Kruysbergen, c’t magazine)

 


Blijf op de hoogte van de nieuwste informatie en tips!
Schrijf je in voor de nieuwsbrief:


 

Lees uitgebreide achtergrondinfo en reviews op je gemak in c't jul-aug/2020

Meer over

Software

Deel dit artikel

Lees ook

RISC-V programmeren: met platform IO en microcontrollerboard

Een instap in de wereld van de opensource technologie RISC-V hoeft niet veel te kosten. We hebben het RISC-V-board Longan Nano uitgeprobeerd met Platf...

Windows configuratie via de Microsoft Management Console (MMC)

Regel op één centrale plek de Windows configuratie via de Microsoft Management Console. Kies uit logboeken, schijfbeheer, apparaatbeheer, taakplanning...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er