Je software up-to-date houden is een grondwet voor iedere computergebruiker. Dat geldt zowel voor het besturingssysteem zelf als voor alle toepassingen. Tot zover de theorie. Maar hoe gaat dat in de praktijk? In de reguliere Windows-wereld heeft dat nogal wat haken en ogen, maar Linux voorziet de gebruiker van vele mogelijkheden. Van volautomatisch tot volledig met de hand.
Software bijwerken
Windows spoort de gebruiker nadrukkelijk aan om ‘Automatische Updates’ aan te zetten. Dat is zeker verstandig, maar… Dat betreft alleen de updates van Windows zelf, het besturingssysteem. En als die ‘automatisch’ komen, wil dat nogal eens ongelegen zijn, lang duren of een onmiddellijke herstart van het systeem vereisen. Ook bepaalt Microsoft wat er wel of niet wordt bijgewerkt, (ongevraagd) toegevoegd of juist verwijderd. Microsoft kan verder behoorlijk laks zijn bij beveiligingsproblemen. En uiteraard moet de gebruiker daarnaast zelf nog zorgen voor de updates van alle toepassingen die zijn geïnstalleerd. Ook die kunnen weliswaar de mogelijkheid bieden tot ‘automatisch updaten’, maar dat moet je toch vaak zelf aanzetten. Kortom, software bijwerken is de grondwet, maar de uitvoeringsregelingen rammelen nogal in de Windows-wereld.
Linux is gans anders! Alle software – besturingssysteem en toepassingen – wordt geïnstalleerd vanuit een samenhangend systeem van pakketbronnen, ofwel repositories. Bijwerken gaat vanuit diezelfde bronnen en dus worden tegelijk het besturingssysteem en alle toepassingen up-to-date gehouden. Alleen als er voor de kernel een update nodig is, moet de computer herstart worden. Maar dat kun je ook gewoon uitstellen tot de volgende start. Als er ergens een beveiligingslek of probleem wordt gevonden, is de wereldwijde Linux-gemeenschap er als de kippen bij om dat op te lossen. Hier geen systeemlekken die rustig maandenlang, of langer, blijven rondslingeren. Grondwet en uitvoeringsregelingen sluiten keurig op elkaar aan.
Maar nu de praktijk. Hoe werkt dit op een Linux-computer?
Automatisch bijwerken
Alle gangbare distro’s hebben een grafische toepassing om automatisch en regelmatig te controleren op software-updates. Bij Linux Mint heet het ‘Programmabeheer’, bij Ubuntu ‘App Center’, bij Kubuntu ‘Ontdekken’, enzovoort. Al deze distro’s werken op basis van DEB-pakketten, het archiefformaat om software te installeren dat is ontwikkeld door Debian, de op een na oudste Linux-distro.
Maar Fedora gebruikt ‘PackageKit’ en openSUSE ‘YaST Softwarebeheer’, beide gebaseerd op de RPM-pakketten van Red Hat, de andere grote en eerbiedwaardige distro, tegenwoordig vooral voor de zakelijke markt.
Typisch Linux: de keuze is reuze. Maar in de praktijk zijn al deze grafische toepassingen juist ontwikkeld om softwarebeheer eenvoudig te maken. Ze doen nagenoeg hetzelfde, maar aangepast aan de onderliggende techniek. Ze zijn als het ware een schil om die commandline-techniek heen. In de wereld van DEB zijn dat met name de toepassingen apt en dpkg, maar de gebruiker hoeft zich daar in principe niet in te verdiepen. Wil je dat toch, dan heeft Ubuntu bv. daar uitvoerige informatie over.
De pakketbeheerders zijn zo ingesteld dat ze zeer regelmatig controleren of er in de repositories nieuwe of vernieuwde pakketten zijn binnengekomen. Zo ja, dan krijgt de gebruiker daarvan een notificatie. Vervolgens kan de pakketbeheerder die nieuwe software automatisch downloaden en installeren – of alleen downloaden – of het laten bij de notificatie. De keus is weer aan de gebruiker. Makkelijk, snel en veilig. En het dekt de volledige verzameling geïnstalleerde software op de computer.
Maar Linux zou Linux niet zijn als er niet meer mogelijk zou zijn.
Handmatig software bijwerken
Distro’s die gebaseerd zijn op DEB-pakketten bieden altijd de mogelijkheid om naast de al beschikbare pakketbeheerder ook Synaptic te installeren. Ook dat is een grafische toepassing, maar het kan meer dan de standaard pakketbeheerders en geeft meer informatie. Synaptic werkt met rubrieken, waaronder ‘Opwaardeerbaar’ (of ‘Upgradable’). Mocht er tijdens het bijwerken van software iets niet goed gaan (Linux is niet volmaakt) dan krijg je hier de informatie over wat er fout ging en hoe het op te lossen is. De zoekfunctie is ook ideaal om geïnstalleerde of gezochte pakketten terug te vinden en daarvan alle details te kunnen bekijken. Ubuntu geeft uitvoerige informatie over Synaptic.
Maar het echte handwerk gebeurt natuurlijk in de terminal. Daar is het commando dpkg het meest krachtige gereedschap om software te beheren, maar daar moet je dan geen fouten mee maken. Minstens zo nuttig en een tikje veiliger is apt. Dat is in feite ook de toepassing die door al die grafische pakketbeheerders ingeschakeld wordt. Een snel overzicht van commando’s en opties krijg je met deze opdracht:
apt --help
En een compleet overzicht met deze:
man apt
(Navigeer met de pijltjestoetsen en sluit af met ‘q’.) Om apt te gebruiken heb je root-permissies nodig en dus zet je sudo vooraan in de opdrachtregel. Maar pas op: ‘With great power comes great responsibility’! Dus als je niet begrijpt wat een opdracht of optie doet: niet doen!
Een update script
Zelf vind ik het vervelend als er achter mijn rug om – ‘automatisch’ – aan mijn software wordt geknutseld. Bovendien hield ‘Ontdekken’ op mijn Kubuntu-box volgens mij de zaken niet altijd correct bij en vond ik het traag werken. Dus zette ik het automatisch bijwerken uit (en verwijderde ‘Ontdekken’, aka ‘Discover’, ook maar meteen). Het updaten deed ik handmatig met apt in de terminal.
Dat kan dus sneller. De betreffende opdrachten zette ik in een shellscript. Dat is in feite een tekstbestand met opdrachtregels die achtereenvolgens en regel na regel worden uitgevoerd. Je hoeft alleen het script in een terminal uit te voeren om alle opdrachten af te werken.
Met dat update-script laat ik apt zoeken naar updates, die toepassen als ze er zijn en daarna eventueel overbodig geworden pakketten verwijderen. Waar nodig wordt je sudo-wachtwoord gevraagd. Voordat er iets wordt geïnstalleerd of verwijderd, wacht het script op bevestiging. Commentaar in het script blijft onzichtbaar door de ‘#’ voor die regel. Je kunt het ook gewoon weglaten.
Dit is het update-script, met toelichtend commentaar.
#!/bin/sh # Deze eerste regel maakt het bestand voor het systeem herkenbaar # als script. # # echo toont de tekst tussen '' of een blanco regel: echo 'Beginnen met het bijwerken van software...' # # apt zoekt of er updates zijn (voor optie -qq zie man apt): sudo apt update -q # -qq echo # # apt vraagt of beschikbare updates geïnstalleerd mogen worden # (voor opties -y en -m zie man apt-get): sudo apt upgrade -q # -y -m echo # # apt zoekt naar overbodig geworden - afhankelijke - pakketten en # vraagt of ze verwijderd mogen worden: sudo apt autoremove echo # # apt ruimt eventueel achtergebleven installatiebestanden op: sudo apt autoclean echo # # het script meldt dat alle opdrachten zijn uitgevoerd en wacht # tot ENTER wordt ingedrukt voor het zichzelf afsluit: echo 'Klaar! Druk op ENTER om deze terminal te sluiten.' read key
Je schrijft dit script in je favoriete tekstverwerker en slaat het op met de extensie ‘.sh’, bv. update.sh en bewaart het in je thuismap. Zorg dat het de juiste rechten heeft en uitvoerbaar is. In de terminal regel je dat zo:
chmod -x 755 ~/update.sh
Om het gemakkelijk uit te voeren kun je nog een ingang toevoegen aan je startmenu, met deze opdracht:
sh ~/update.sh
Vink aan dat dit moet worden uitgevoerd in een terminal. Desgewenst kun je ook nog een toetsenbordsnelkoppeling maken naar die startmenu-ingang. Updaten doe je dan gecontroleerd maar heel simpel met een enkele toetsencombinatie.
