Klik hier voor informatie over de wijziging in de levering van diensten en ondersteuning.

Debian Upgrade

upgrade

In deze korte blogpost leg ik kort uit hoe je Debian GNU/Linux naar de volgende release kunt upgraden.

Klik hier voor context.

Naast FreeBSD en OpenBSD gebruik ik thuis vooral Debian GNU/Linux, een Linux-distributie die bekend staat om zijn stabiliteit.
Een paar jaar geleden merkte ik echter dat ik modernere pakketten miste en besloot ik daarom over te stappen naar Sid, de rolling release van Debian.
Daarvoor moest ik een distributie-upgrade uitvoeren door het bestand sources.list aan te passen en vervolgens verschillende apt-commando’s met diverse opties uit te voeren.

Sid is experimenteel en kan theoretisch sneller problemen geven, maar in mijn ervaring draait het al die tijd verrassend stabiel.
En dat terwijl ik, als ik de uitvoer van lsb_release -a mag geloven, niet eens een zuivere Sid-versie gebruik:

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux forky/sid
Release:    n/a
Codename:   forky

Op oudere systemen ben ik wel wat voorzichtiger. Zo heb ik een IBM ThinkCentre van bijna 25 jaar oud, waarop ik oorspronkelijk Debian Bullseye (11) draaide. Die machine is inmiddels geüpgraded naar Bookworm (12), en voor dit i686-systeem zal dat waarschijnlijk de laatste Debian-release zijn die erop draait. Het blijft bijzonder dat een bijna 25 jaar oud systeem, met een ‘antieke’ 32-bit processor en een PATA-harddisk (je weet wel, die met de brede platte kabels), nog steeds probleemloos draait op een moderne Linux-distributie. Ook op deze machine heb ik onderstaande werkwijze toegepast om de upgrade uit te voeren.


Een upgrade uitvoeren is op zich niet moeilijk, maar het leek me handig om alle benodigde commando’s overzichtelijk samen te vatten in dit artikel, in de hoop dat niet alleen ikzelf, maar ook anderen er iets aan hebben.

Klik hier voor de disclaimer.

Disclaimer:
Het uitvoeren van een systeemupgrade brengt altijd risico's met zich mee. Zorg daarom altijd voor volledige back-ups of een disk image van je systeem voordat je wijzigingen doorvoert.
De auteur van dit artikel geeft geen garanties met betrekking tot de juistheid, volledigheid of geschiktheid van de informatie voor specifieke doeleinden.
Het gebruik van de instructies in dit artikel is volledig op eigen risico. De auteur aanvaardt geen enkele aansprakelijkheid voor directe of indirecte schade, verlies van gegevens, systeemstoringen of andere gevolgen die kunnen voortvloeien uit het gebruik van dit artikel of de daarin beschreven procedures.


Conventies

In dit onderdeel licht ik kort toe hoe commando’s worden uitgevoerd. Daarna volgt een overzicht van de verschillende Debian-versies, en vervolgens de stappen om de upgrade uit te voeren.

Gebruikers- en root-commando's

Het voorvoegsel van een commando geeft aan met welke rechten je het moet uitvoeren:

  • $ betekent dat je het commando uitvoert als gewone gebruiker.
  • # betekent dat je het commando uitvoert als root (beheerder).
Klik hier voor een toelichting.

Je kunt root worden met:

$ su -

of

$ sudo su
  • Bij su - wordt om het root-wachtwoord gevraagd.
  • Bij sudo su wordt om het gebruikerswachtwoord gevraagd (werkt alleen als jouw gebruiker lid is van de groep sudoers).

Sommige gebruikers geven de voorkeur aan het gebruik van sudo voor elk commando. Dat kan ook. In principe worden alle commando's hieronder als root uitgevoerd. Zie je # <commando>? Dan kun je dat vervangen door:

$ sudo <commando>

Verkorte Releasetabel

Debian gebruikt zowel codenamen als versienummers, wat soms verwarrend kan zijn. Daarom heb ik de laatste vijf releases hieronder op een rijtje gezet.

Naam Versienummer
Stretch 9
Buster 10
Bullseye 11
Bookworm 12
Trixie 13

Voor meer (of alle) releases uit het verleden: https://www.debian.org/releases/

Stap 1: Huidige release controleren

# lsb_release -a

Controleer eventueel de processorarchitectuur:

# uname -m
# dpkg --print-architecture
  • i386 → upgraden wordt niet aangeraden.
  • i686 → upgraden naar Debian Bookworm (11 → 12) is mogelijk, maar Trixie (12 → 13) wordt niet ondersteund.

Stap 2: Schijfruimte controleren

# df -h

Stap 3: Systeem up-to-date brengen

# apt update
# apt upgrade
# apt full-upgrade
# apt autoremove
# reboot

Stap 4: sources.list aanpassen

In deze stap pas je het bestand sources.list aan met nano. Uiteraard kun je ook vi of een andere teksteditor gebruiken.

# apt install nano
# nano /etc/apt/sources.list

Vervang hierin:

  • bullseyebookworm (upgrade van 11 naar 12)
  • bookwormtrixie (upgrade van 12 naar 13)

In nano kun je de vervangfunctie starten met de toetscombinatie CTRL + \. Vervolgens kun je een zoekterm invoeren en wordt gevraagd of je alle overeenkomsten wilt vervangen.

Stap 5: Minimale upgrade uitvoeren

Ik kies er meestal voor om een upgrade in twee stappen uit te voeren: eerst een upgrade zonder nieuwe pakketten toe te voegen (--without-new-pkgs), en daarna een full-upgrade (synoniem voor dist-upgrade, de oude term). Deze volgorde is veiliger omdat eerst de bestaande pakketten worden bijgewerkt, zonder dat er nieuwe pakketten worden geïnstalleerd of bestaande worden verwijderd. Zo kun je eerst controleren of alles stabiel blijft voordat je de ingrijpendere full-upgrade uitvoert, die afhankelijkheden kan toevoegen of verwijderen.

Je kunt deze stap overslaan en direct een full-upgrade uitvoeren, maar mijn advies is om vooral niet overhaast te werk te gaan bij een distributie-upgrade. Houd er rekening mee dat beide stappen enige tijd kunnen duren.

# apt update
# apt upgrade --without-new-pkgs

Hiermee worden de kernpakketten geüpgraded zonder nieuwe afhankelijkheden die je systeem kunnen breken. Controleer af en toe het proces.

Stap 6: Volledige upgrade uitvoeren

Houd er rekening mee dat deze stap enige tijd kan duren, vooral als je de vorige stap hebt overgeslagen.

# apt update
# apt full-upgrade

Stap 7: Systeem herstarten

Herstart tot slot de computer.

# reboot

Tip: Controleer na de upgrade altijd of alle services correct starten en het systeem stabiel is.

Previous Post