Linux Systeembeheer/Applicaties beheren
Leerdoelen
[bewerken]- De package managers yum
en apt-getkennen en kunnen gebruiken:- Weten welke Linux distributies deze package managers (standaard) gebruiken;
- Met yum
en apt-getsoftware kunnen installeren, verwijderen en bijwerken; - Pakketbronnen (Eng. repositories) beheren.
- Applicaties buiten de distributie om kunnen installeren en onderhouden:
- De correcte plaats van zulke applicaties in de Linux-directorystructuur kennen (meer bepaald /opt en /usr/local);
- Weten hoe je applicaties kan installeren vanaf de broncode.
Algemeen
[bewerken]Installeren
[bewerken]Linux-distro's maken gebruik van een pakketbeheersysteem om de geïnstalleerde software te onderhouden. Zo gebruiken RedHat en afgeleide distro's (vb. Fedora en CentOS) RPM (RedHat Package Manager). Debian en afgeleiden (vb. Ubuntu) gebruiken apt-get en de package manager van Gentoo heet emerge. De lijst is uiteraard nog veel groter. Een package manager zorgt dat bij installatie van software alle afhankelijkheden opgelost worden (vb. een bibliotheek) en verwittigt de gebruiker regelmatig als er updates zijn.
In RPM-gebaseerde systemen worden packages aangeleverd in de vorm van bestanden met extensie .rpm. Bij Debian-achtige systemen is dat .deb. Je kan RPM-packages installeren met dit commando:
rpm -i mypackage-1.2.3.rpm
Voor de meeste programma's is het niet nodig RPMs te downloaden en dan zoals hierboven te installeren. Linux-distributies hebben een zgn. repository, een database met packages die on-line ter beschikking wordt gesteld. Je dient dan enkel de naam van de package te kennen, de package manager doet de rest. Software die niet in de repository zit, vind je voor de meest gangbare distro's als een RPM op de homepage van de applicatie.
Als er geen rpm of deb bestaat kan je nog altijd gebruik maken van een tarball (extensie .tar.gz) die de broncode bevat. Je moet die dan nog compileren en manueel installeren. Meestal is dat volgens dit stramien:
./configure [--prefix=/usr/local]; make; sudo make install
Je kijkt dan best ook na waar al je bestanden zullen terechtkomen, die kan je zien in 'Makefile'. Een van de nadelen van deze manier van werken is dat afhankelijkheden niet gecontroleerd worden. Dit kan er toe leiden dat je nog packages vanaf de broncode moet installeren die zelf ook afhankelijkheden hebben, enz. Dit was zeker in de begindagen van Linux (toen er nog geen package managers waren) een groot probleem, en men noemde dit "dependency hell". Tegenwoordig heb je slechts in heel uitzonderlijke omstandigheden nood aan deze manier van werken, de meeste software die je nodig hebt zijn beschikbaar in de repositories.
Over het algemeen geldt:
- Zoek eerst of de software die je nodig hebt in de repositories zit;
- Zo niet, zoek uit of er RPMs (of .deb's) bestaan specifiek voor jouw distributie;
- Als laatste redmiddel, installeer van source.
Locaties
[bewerken]Op Linux-systemen is er voor elk type bestand een vastgelegde plaats in de directorystructuur, vastgelegd in de Linux Filesystem Hierarchy Standard (FHS). Applicaties die tot de distributie behoren, horen thuis in /usr/. Als je software installeert van een andere bron, dan hoort dit thuis in /usr/local. Bijhorende bestanden worden verdeeld onder specifieke subdirectories. Executables komen terecht in subdirectory /usr[/local]/bin, vaste data (vb. afbeeldingen, iconen) in /usr[/local]/share, documentatie in /usr[/local]/doc, enz. Sommige applicaties, in het bijzonder deze die vanuit Windows naar Linux geporteerd zijn, verwachten dat alle bestanden binnen eenzelfde directory terecht komen. Voor dit soort gevallen is de directory /opt voorzien.
Sommige systeembeheerders zetten deze directories op een aparte partitie, zodat een nieuwe versie van de distro kan geïnstalleerd worden zonder dat de manueel geïnstalleerde pakketten beïnvloed worden.
Yum
[bewerken]Yum (Yellowdog Updater, Modified) is een soort gebruikersschil rond RPM en kan in plaats van dit laatste gebruikt worden om de software op het systeem te beheren. Zo is het mogelijk om software te verwijderen, toe te voegen of bij te werken. Yum is de standaard geworden binnen de RedHat familie.
Commando's
[bewerken]Hieronder volgt een overzicht van de meest voorkomende argumenten.
Update alle software waarvoor dit mogelijk is:
$ yum update
Update een specifiek pakket indien mogelijk:
$ yum update {naam}
Geeft een overzicht van alle geïnstalleerde programma's:
$ rpm -qa
$ yum list installed
Uitzoeken of httpd geïnstalleerd is op het systeem:
$ rpm -qa | grep httpd*
$ yum list installed httpd
Hiermee kan je nagaan welke pakketten of pakketonderdelen er zijn geïnstalleerd:
$ yum list httpd
$ yum list perl*
De uitvoer van het laatste:
Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files Installed Packages perl.i386 4:5.8.8-10.el5_0.2 installed perl-Archive-Tar.noarch 1.30-1.fc6 installed perl-BSD-Resource.i386 1.28-1.fc6.1 installed perl-Compress-Zlib.i386 1.42-1.fc6 installed perl-DBD-MySQL.i386 3.0007-1.fc6 installed perl-DBI.i386 1.52-1.fc6 installed perl-Digest-HMAC.noarch 1.01-15 installed perl-Digest-SHA1.i386 2.11-1.2.1 installed perl-HTML-Parser.i386 3.55-1.fc6 installed ..... ....... .. perl-libxml-perl.noarch 0.08-1.2.1 base perl-suidperl.i386 4:5.8.8-10.el5_0.2 updates
Installeren van het httpd-pakket:
$ yum install httpd
Installeren van het mysql-pakket voor de i386-architectuur:
$ yum install mysql.i386
Verwijderen van het httpd-pakket:
$ yum remove httpd
Geeft een lijst weer van alle beschikbare pakketten:
$ yum list all
Geeft een lijst weer van alle beschikbare pakketgroepen:
$ yum grouplist
De uitvoer zit er dan als volgt uit:
Installed Groups: Engineering and Scientific MySQL Database Editors System Tools Text-based Internet Legacy Network Server DNS Name Server Dialup Networking Support FTP Server Network Servers Legacy Software Development Legacy Software Support Development Libraries Graphics Web Server Ruby Printing Support Mail Server Server Configuration Tools PostgreSQL Database Available Groups: Office/Productivity Administration Tools Beagle Development Tools GNOME Software Development X Software Development Virtualization GNOME Desktop Environment Authoring and Publishing Mono Games and Entertainment XFCE-4.4 Tomboy Java Java Development Emacs X Window System Windows File Server KDE Software Development KDE (K Desktop Environment) Horde Sound and Video FreeNX and NX News Server Yum Utilities Graphical Internet Done
Installeert alle pakketten in deze groep:
$ yum groupinstall "Development Tools"
Update alle pakketten in deze groep:
$ yum groupupdate "Development Tools"
Verwijder alle pakketten in deze groep:
$ yum groupremove "Development Tools"
Geef een overzicht van alle pakketten die niet via de normale kanalen zijn bekomen (via alternatieve repo's dus):
$ yum list extras
De uitvoer ziet er dan als volgt uit:
Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files Extra Packages DenyHosts.noarch 2.6-python2.4 installed VMwareTools.i386 6532-44356 installed john.i386 1.7.0.2-3.el5.rf installed kernel.i686 2.6.18-8.1.15.el5 installed kernel-devel.i686 2.6.18-8.1.15.el5 installed lighttpd.i386 1.4.18-1.el5.rf installed lighttpd-fastcgi.i386 1.4.18-1.el5.rf installed psad.i386 2.1-1 installed rssh.i386 2.3.2-1.2.el5.rf installed
Hiermee kan je te weten komen van welke software een bestand is:
$ yum whatprovides /etc/passwd
De uitvoer zit er dan als volgt uit:
Loading "installonlyn" plugin Loading "security" plugin Setting up repositories Reading repository metadata in from local files setup.noarch 2.5.58-1.el5 base Matched from: /etc/passwd setup.noarch 2.5.58-1.el5 installed Matched from: /etc/passwd
Geeft alle overige informatie weer die je ooit zal nodig hebben:
$ man yum
Configuratie
[bewerken]Via de bestanden /etc/yum.conf en etc/yum.repos.d kan je de instellingen van Yum aanpassen. Meestal wordt alleen nog /etc/yum.conf gebruikt. Deze bestanden laten toe om extra repo's toe te voegen of om extra plugins aan te passen.
Een toevoeging van een lokale mirror ziet er dan als volgt uit:
[base-local] name=Fedora $releasever - $basearch Lokaal 419 failovermethod=priority baseurl=http://10.0.0.10/yum/base/$releasever/$basearch/ enabled=1 gpgcheck=0 [updates-local] name=Fedora $releasever - $basearch - Updates Lokaal 419 failovermethod=priority baseurl=http://10.0.0.10/yum/updates/$releasever/$basearch/ enabled=1 gpgcheck=0
Labo-opgave
[bewerken]In een vorige stap heb je op een klaspc of je eigen pc een basisinstallatie van een Linux-systeem opgezet. Nu installeren we enkele applicaties.
- Zorg ervoor dat de yum- package manager nieuwe pakketten binnenhaalt van de Belnet mirror repository in plaats van de standaardkeuze.
- Installeer de laatste versies van:
- De Java Standard Edition SDK van Sun (niet OpenJDK of GCJ);
- Netbeans;
- Eclipse;
- De netwerktools nmap en wireshark.
- Zorg er voor dat een gewone gebruiker nmap en wireshark kan uitvoeren met root-rechten, zonder als root te moeten inloggen en zonder een wachtwoord te moeten intikken.