Linux Systeembeheer/Applicaties beheren

Leerdoelen

bewerken
  • De package managers yum en apt-get kennen en kunnen gebruiken:
    • Weten welke Linux distributies deze package managers (standaard) gebruiken;
    • Met yum en apt-get software 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:

  1. Zoek eerst of de software die je nodig hebt in de repositories zit;
  2. Zo niet, zoek uit of er RPMs (of .deb's) bestaan specifiek voor jouw distributie;
  3. 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 (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.

  1. Zorg ervoor dat de yum- package manager nieuwe pakketten binnenhaalt van de Belnet mirror repository in plaats van de standaardkeuze.
  2. Installeer de laatste versies van:
    1. De Java Standard Edition SDK van Sun (niet OpenJDK of GCJ);
    2. Netbeans;
    3. Eclipse;
    4. De netwerktools nmap en wireshark.
  3. 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.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.