Chapter 10. Linux en Andere Applicaties Upgraden

Table of Contents
Het gebruik van de Red Hat Package Manager (RPM)
Installeren en Upgraden Zonder RPM
Strategiën voor het Bijhouden van een Up-to-date Systeem
Linux Kernel Upgrades
Upgraden van een Red Hat Stock Kernel
Bouwen van een Aangepaste Kernel
Overstappen op Linux 2.2.x Kernels
Configureren van de Apache Web Server
Configureren van de Squid HTTP Caching Proxy Daemon
Configureren van de Sendmail E-mail Daemon

Om zoveel mogelijk uit je Linux-systeem te halen, zoals het toevoegen van mogelijkheden, het afgeraken van potentiële bugs, en de verzekering dat het redelijk vrij is van beveiligingslekken, is het een goed idee je server -- waaronder de Linux-kernel, de modules en gebruikersutilities -- te upgraden. Nu en dan kan het ook nodig zijn hardware-componenten, zoals een grotere harddisk te upgraden. Dit hoofdstuk richt zich op dit onderwerp.

Het gebruik van de Red Hat Package Manager (RPM)

De Red Hat distributie van Linux, waaronder de kernel, library's, en applicaties worden als RPM-bestanden geleverd. Een RPM-bestand, ook bekend als een “package” is een manier om software te distribueren, zodat het eenvoudig kan worden geïnstalleerd, bijgewerkt, ondervraagd, en verwijderd. RPM-bestanden bevatten informatie over de naam van het package, de versie en (als dit van toepassing is) informatie waarvan de bestanden afhankelijk zijn, het platform (zoals Intel of Alpha, enz.), en tevens de standaardlocaties waar de bestanden worden geïnstalleerd.

Het RPM-utility werd voor het eerst ontworpen als een Open Source product zoals dit gebruikelijk is in de Linux-gemeenschap. Andere ontwikkelaars pakte het op en voegde er extra functionaliteit aan toe. De RPM-methode bij het in een pakket verpakken van bestanden is populair geworden en het wordt niet alleen voor Red Hat gebruikt maar ook voor een aantal andere distributies.

Populaire Linux applicaties worden bijna altijd en meestal tamelijk snel als RPM-bestanden uitgegeven. In de wereld van Unix wordt de feitelijke standaard voor het distribueren van packages echter voortgezet in de vorm van zogenoemde “tarballs”. Tarballs zijn gewoonweg bestanden die leesbaar zijn met het utility ``tar''. Het installeren vanuit tar is meestal wat lastiger dan met gebruik van RPM. Dus waarom zouden mensen er voor kiezen? Helaas duurt het soms een paar weken eer ontwikkelaars de laatste versie van een package naar RPM geconverteerd krijgen. (veel ontwikkelaars geven ze als eerste als tarballs uit).

Als je een upgrade op je systeem of applicaties met tar start, dan zal je RPM-database verouderd en inconsistent geraken. Dit is niet echt een probleem (toen ik Slackware gebruikte, gebruikte ik zonder al teveel ongemak -- exclusief tar -- er was geen andere keuze), maar waar mogelijk probeer ik geduldig te zijn en te wachten totdat de RPM beschikbaar komt, of misschien dat ik de ontwikkelaar van het package een beleefd verzoek stuur. (Je kunt ook je eigen RPM-bestanden bouwen en ze naar anderen distribueren, waarmee je andere ontwikkelaars, die de mogelijkheid of tijd niet hebben om zelf dergelijke bestanden te produceren, soms behulpzaam kunt zijn).

Een werkelijk goede plaats om uit te zoeken of bepaalde software in de vorm van een RPM beschikbaar is, is de RPM-opslagplaats op http://rufus.w3.org/linux/RPM/. De opslagplaats voorziet in geïndexeerde categoriën, die behulpzaam kunnen zijn bij het lokaliseren van een gegeven RPM-bestand, en het bevat verwijzingen naar duizenden van dergelijke bestanden.

Voor het ondervragen van een package, gebruik je ``rpm -q pkg-name''(bv. ``rpm -q pine''). RPM zal je óf aangeven dat de versie van het package reeds is geïnstalleerd, óf dat het package niet is geïnstalleerd.

Ervan uitgaande dat het package reeds is geïnstalleerd, en een eerdere versie is dan het update package dat je downloadde (wat het zou moeten zijn), dan zou het mogelijk moeten zijn de update met ``rpm -Uvh pkg-name'' toe te passen. Als alles goed gaat, zal het package automatisch worden geïnstalleerd en is onmiddellijk klaar voor gebruik. Als dit niet zo is, zal RPM je een tamelijk goede reden geven (bijvoorbeeld omdat er eerst een upgrade moet worden toegepast op een ondersteunend package). Mogelijk is hier wat denkwerk voor nodig, maar problemen als deze zijn zeer eenvoudig uit te komen.

Als aan de andere kant, het package nog niet is geïnstalleerd, en je besluit dat je het wenst te installeren, dan typ je ``rpm -ivh pkg-name''. Als er enige ondersteunende packages zijn vereist, dan zal RPM je dit aangeven.

Soms zal je een package willen installeren dat alleen in het bronformaat beschikbaar is. In feite zou je vanuit de source moeten installeren voor het geval het binaire package een trojan horse of iets anders vervelends bevat (natuurlijk zou iets dergelijks ook in een source voor kunnen komen, maar dat is zeer onwaarschijnlijk omdat die vermoedelijk op korte termijn door een andere ontwikkelaar zou worden ontmaskerd).

De wijze om een package vanuit de source te installeren, is door het aan het RPM-utility specificeren van de ``rebuild'' switch. Bijvoorbeeld:

rpm -ivh --rebuild foo.src.rpm

Hiermee zou het package ``foo'' worden geconfigureerd en gecompileerd, waarbij een binair RPM-bestand in de directory ``/usr/src/redhat/RPMS/i386/'' zou worden geproduceerd (ervan uitgaande dat je Linux op het Intel-platform gebruikt). Je kunt het package dan net als anders installeren.

Tenslotte, als je problemen krijgt bij het compileren van een source-package (misschien dat je een makefile moet wijzigen, of een configuratie-optie moet veranderen, enz.) kun je de volgende stappen volgen (waarbij we het wederom illustreren van de hand van ons fictieve voorbeeldpackage ``foo'') om de source te compileren, een nieuw binair package te bouwen en het dan vanuit het binaire package te installeren:

rpm -ivh foo.src.rpm
cd /usr/src/redhat/SPECS
pico -w foo.spec

Maak de wijzigingen die je nodig acht aan het ``.spec'' bestand, en tik vervolgens in:

rpm -ba foo.spec

Hiermee zal het package opnieuw worden samengesteld met de wijzigingen die je aan het ``.spec'' bestand hebt aangebracht. Net als hiervoor, zal het binaire RPM-bestand te lokaliseren zijn in ``/usr/src/redhat/RPMS/i386/'', en kan net als anders worden geïnstalleerd.

Voor meer informatie over RPM zou je in de Red Hat documentatie moeten kijken. Het is een uitermate krachtig hulpmiddel dat het waard is om beter te leren kennen. De beste bron met informatie over RPM is ``Maximum RPM'', dat zowel in de vorm van een boek als ook in postscript-formaat beschikbaar is op http://www.rpm.org/maximum-rpm.ps.gz. (Als je besluit het postscript-document af te drukken, houdt dan in de gaten dat je hier heel veel papier voor nodig hebt!). Er is tevens een kleinere gids beschikbaar, de ``RPM-HOWTO'',op http://www.rpm.org/support/RPM-HOWTO.html.