11. Software-Management

Inhalt:

11.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.

11.2 Komponenten

11.2.1 Theorie

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

Siehe auch O'Reilly "Linux"-Poster (Lokale Kopie):

11.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]

11.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:

11.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?

11.5 Diverse Rahmenbedingungen

11.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.

11.6.1 Beispiel: Solaris Packages

11.6.2 Beispiel: RedHat Package Management (RPM)

11.6.3 Beispiel: NetBSD

11.6.4 Vergleich

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

11.7 Source-basierte Paketverwaltung

Beispiele: pkgsrc, Gentoo Portage, SRPM.

Siehe Kapitel "Source Pakete" der Open Source Vorlesung.

Literatur

Übungen
(c) Copyright 1998-2006 Hubert Feyrer <hubert@feyrer.de>
$Id: 12-sw.html,v 1.27 2008-10-22 21:57:42 feyrer Exp $