tux rechts Hoe Linux software te installeren? tux links
door Hans Lunsing, 19 juni 2006

 

 

Hoe een softwarepakket onder Linux moet worden geinstalleerd hangt af van zowel vorm als inhoud van het pakket. In beide kent Linux de nodige variatie. Een aantal pakketformaten hoort bij één of ander systeem voor het beheer van pakketten. Daarnaast zijn er pakketformaten die niet aan een pakketbeheersysteem gebonden zijn.

 

^top Systemen voor pakketbeheer en bijbehorende formaten

De belangrijkste systemen voor pakketbeheer zijn RPM, dat door SUSE, Mandriva, Fedora, Redhat en afgeleiden wordt gebruikt, en dpkg, in gebruik bij Debian en afgeleide distributies zoals Ubuntu, Mepis en Knoppix. Daarnaast is het systeem van Slackware, pkgtool van belang. Voorts zijn enkele nieuwe systemen in opkomst, met name Autopackage en Klik. Allemaal hebben ze hun eigen pakketformaat.

Verscheidene minder bekende distributies hebben soms innovatieve eigen pakketbeheerssystemen ontwikkeld. Ik noem hier alleen het bijzondere Portage dat is ontwikkeld voor de Gentoo Linux distributie. Het heeft geen eigen pakketformaat maar ondersteunt zowel RPM als tarballs (.tgz). Het is in staat om aan de hand van een reeks configuratiebestanden vrijwel alles volgens uw specificaties vanaf de broncode op te bouwen. Portage's beheersprogramma heet emerge, dat u op dezelfde wijze kunt gebruiken als Debian's apt-get. Alles wat nodig is om het gewenste pakket op uw systeem aan het werk te krijgen wordt door Portage gedaan, met inbegrip van compileren en oplossen van afhankelijkheden.Het gaat te ver om er hier dieper op in te gaan, maar als u geïnteresseerd bent kunt u hier een Nederlandstalige handleiding vinden. Let wel, Gentoo is niet geschikt voor beginners in Linux.

 

^top Op zich zelf staande pakketformaten

Hier komen een aantal op zich zelf staande pakketformaten aan de orde. De belangrijkste zijn de tarball, een gecomprimeerd archief met een niet vaststaande inhoud, en het CD-ROM image, dat vooral voor Linux distributies wordt toegepast.

 

^top Gereedschappen

Alle beheerssystemen voor software en pakketformaten hebben hun eigen al dan niet grafische interfaces en tools. Deze komen bij de bespreking van de verschillende systemen aan de orde. Hier wil ik de aandacht vestigen op enkele programma's die bij het beheer van meerdere soorten pakketten van pas kunnen komen.

Veel filemanagers bieden de mogelijkheid de inhoud van een pakket te bekijken, zodat u bijvoorbeeld voor het installeren al kunt zien waar het al zijn bestanden neerzet. Met name de console filemanager Midnight Commander (mc) is erg gemakkelijk in het gebruik. Met mc kan de inhoud van een RPM of Debian pakket niet alleen worden onderzocht, maar kan het pakket ook als het ware van binnenuit worden geïnstalleerd. In de root directory van het pakket laat mc namelijk twee virtuele uitvoerbare bestanden zien: INSTALL en UPGRADE (deze laatste alleen bij RPM). Als u de cursor op één van deze twee zet en op de <Enter> toets tikt zal het pakket geïnstalleerd dan wel vernieuwd worden. Ook tarballs en Java archieven kunt u met mc van binnen bekijken.

Voor de Gnome desktop is fileroller een mooie grafische schil voor het beheren van allerlei pakketformaten. Het leest RPM en Debian pakketten en CD-ROM images, en leest en schrijft tarballs en andere archiefformaten zoals zip, rar, lha etc. Voor de KDE desktop is er een soortgelijk programma met de naam ark, maar het is wel wat beperkter. Zo kan het geen RPM pakketten en CD-ROM images lezen.

Met het bijzonder handige programma alien kunnen de verschillende pakketformaten naar elkaar worden geconverteerd. Het is geschreven in de scripttaal Perl, dus u dient Perl te hebben geïnstalleerd om alien te kunnen gebruiken. Om van en naar RPM dan wel naar Debian pakketten te converteren moeten bovendien de RPM dan wel Debian package management tools ter beschikking staan. Als u bijvoorbeeld een programma op uw systeem wilt installeren dat alleen in de vorm van een (binaire) tarball beschikbaar is kunt u alien gebruiken om de tarball naar een RPM pakket te converteren. Zo kunt u toch gebruik maken van alle voordelen van RPM, zoals checks op afhankelijkheden en eenvoudige deïnstallatie. Voorwaarde is dan wel dat de uiteindelijke directorystructuur al in de tarball is vastgelegd. En helaas, dat is heel vaak niet het geval, zodat het dan toch nog nodig is om handmatig een "tussen" tarball met de juiste directorystructuur samen te stellen. De makers van alien raden overigens aan om het programma niet te gebruiken voor de conversie van belangrijke systeempakketten zoals sysvinit en shared (gedeelde) libraries.

 

^top Pakketten met broncode

De inhoud van de pakketten kan zoals gezegd bestaan uit klare direct te gebruiken programma's, of uit broncode. Het grote voordeel van broncode is dat het op elk Linux of UNIX systeem kan worden ingezet. De maker van het programma hoeft dan geen pakketten voor alle mogelijke systemen te maken. Configuratie voor een specifiek systeem wordt aan de gebruiker overgelaten. Ook als u geen idee heeft hoe dat moet hoeft u zich daar vrijwel nooit zorgen over te maken omdat slimme programma's er voor zorgen dat het configuratieproces vrijwel geautomatiseerd verloopt. Daarna kan het programma eveneens vrijwel geautomatiseerd worden gecompileerd en tenslotte geïnstalleerd. Vaak worden beide methodes van verspreiding gecombineerd: de maker van het programma levert enkele gecompileerde pakketten, bijvoorbeeld RPMs, voor de meest gangbare systemen en een automatisch configureerbaar broncode pakket voor alle andere systemen. Als het programma onder de GPL (General Public License) wordt verspreid moet de broncode in elk geval ter beschikking staan en het is dan vaak maar een kleine moeite hem ter wille van de gebruiker automatisch configureerbaar te maken.

De compilatiestap zorgt ervoor dat het programma in systeemspecifieke machinecode wordt omgezet. Om broncode te kunnen compileren moet tenminste de volgende ontwikkelprogrammatuur aanwezig zijn:

Daarnaast zijn ontwikkelpakketten nodig van de libraries die het programma gebruikt. Deze bevatten onder meer C header files en speciale library versies. Ze zijn vaak te herkennen doordat hun naam de term "devel" bevat. Minimaal is nodig:

Voor grafische programma's komt daar tenminste bij:

Daarnaast kunnen vele programma's nog specifieke eisen hebben. In het algemeen zullen de C (en/of C++) header files die behoren bij de libraries waarvan de programma's afhankelijk zijn op het systeem moeten staan. Programma's kunnen ook in andere talen dan C of C++ zijn geschreven, zoals b.v. Pascal. In dat geval moet de juiste compiler, voor Pascal b.v. de FreePascal compiler, ppc386, beschikbbaar zijn. Ook wordt wel eens de aanwezigheid van een bepaalde script compiler zoals perl, python of tcl/tk geëist. Als u zelf geen programmeur bent is het dus heel goed mogelijk dat u het een en ander moet installeren voordat u een programma, dat in de vorm van broncode geleverd is, kunt compileren en uiteindelijk gebruiken.