12. Software-Management

Inhalt:

12.1 Software-Architektur

  • Anwendungen: Benutzen diverse Bibliotheken fuer die Kommunikation zwischen Anwendung und Benutzer sowie anderen Anwendungen

  • Hilfsbibliotheken: Sammlungen von Routinen, haeufig fuer groessere Applikationen wie KDE oder GNOME

  • Grafik-Bibliotheken: APIs zum erzeugen von Grafiken in verschiedenen Formaten (jpeg, tiff, png, ...)

  • Grafik-System: Umwandlung von Zeichen-Anforderungen in Bilder

  • Shell-Anwendungen: Befehlszeilen- und Bildschirm-Anwendungen (curses), "Standard-Unix"

  • System-Bibliotheken: haeufig benutzte, nicht-grafische Routinen wie libc, libm, curses, SSL, termcap/terminfo, etc.

  • Systemprogramme: Interagieren mit Kernel und Treibern, zur Konfiguration von Netzwerkkarten, etc.

  • Treiber: Steuern Hardware an, benutzen Kernel-Dienste

  • Kernel: Systemdienste wie Virtuelle Speicherverwaltung, Timer-Dienste, etc.

12.2 Komponenten

12.2.1 Theorie

Beispiele für häufig verwendete Software-Komponenten:

12.2.2 Praxis

Die Praxis bestehender Software-Systeme sieht so aus, dass die genaue Architektur primaer durch die Abhaengigkeiten vieler einzelner Software-Komponenten definiert ist. Ein kleiner Ausschnitt:


[Vollständiges PDF / Druckversion Seite 1/2/3; Siehe auch O'Reilly "Linux"-Poster]

12.3 Historie & Abgrenzung

Die Grenzen zwischen "Betriebssystem" und "Anwendungen" sind bei Unix sehr fließend:

Je nach Unix-Version muß also der Umfang der Software betrachtet werden der mitgeliefert wird, und wie einfach diese gewartet (aktualisiert, ggf. ohne Unterstuetzung des Herstellers) werden kann:

12.4 Manuelle Installation

Bei der manuellen Software-Installation sind mehrere logische Schritte in Reihenfolge auszufuehren:
  1. Quellen beschaffen
  2. Entpacken
  3. Installationsanleitung lesen, Software ggf. anpassen und konfigurieren
  4. Compilieren
  5. Compilierte Programme und Daten installieren
  6. Deinstallieren?

12.5 Diverse Rahmenbedingungen

12.6 Binaer-basierte Paketverwaltung

Im Folgenden werden für verschiedene binär-basierte Paketverwaltungen die folgenden Aspekte gezeigt:

Es wird besonders auch betrachtet, inwieweit Software ohne root-Rechnte installiert werden kann.

12.6.1 Beispiel: Solaris Packages

12.6.2 Beispiel: RedHat Package Management (RPM)

12.6.3 Beispiel: NetBSD

12.6.4 Vergleich

Paketsystem Alle Pakete auflisten Info über ein Paket installieren deinstallieren
Solaris pkginfo pkginfo, pkgchk pkgadd pkgrm
NetBSD pkg_info pkg_info pkg_add pkg_delete
RPM-based Linux (SuSE, RedHat, Mandrake) rpm -q -a rpm -q rpm -i rpm -e
DPKG-based Linux (Debian) dpkg -l dpkg -p dpkg -i dpkg -r / -P
Gentoo Linux emerge -s emerge -p emerge emerge unmerge

12.7 Source-basierte Paketverwaltung

Beispiele: pkgsrc, Gentoo Portage, SRPM.

Siehe Kapitel "Source Pakete" der Open Source Vorlesung.

Literatur

Übungen
(c) Copyright 1998-2005 Hubert Feyrer <hubert@feyrer.de>
$Id: 12-sw.html,v 1.15 2005/08/09 02:57:01 feyrer Exp $