Wenn es um MiNT geht, fällt immer wieder der Begriff "Sparemint". Vielen Anwendern ist nicht klar, worum es sich dabei handelt. Benjamin Kirchheim stellt Ihnen das Paket in einer Praxiseinführung vor.
Jeder kennt das Problem. Da hat man ein Programm, das speziell für FreeMiNT ist, und nun muss es entpackt und installiert werden. Das gestaltet sich oft nicht einfach, auch die Übersicht, welche Programme es gibt und wo man sie bekommt und welches die aktuelle Version ist, fehlt. Jedoch hatten einige FreeMiNT-Köpfe (Guido Flohr und Frank Naumann) Mitte 1999 die Idee, den Redhat Paket Manager (RPM), das Kernstück jeder SuSE und Redhat Linux-Distribution, für FreeMiNT einzusetzen. Das Kind bekam den Namen „Sparemint“, inzwischen finden sich dort über 300 Pakete.
Mit dem Redhat Paket Manager ist es möglich, Softwarepakete auf einfachste Weise zu installieren, zu aktualisieren und jederzeit vollständig zu deinstallieren. Dafür verwaltet der Redhat Paket Manager eine Datenbank, in der gespeichert wird, welche Datei zu welchem Paket gehört. Auch die Pfade dieser Dateien und die Versionsnummer des Pakets sind in dieser Datenbank gesichert. So ist es jederzeit möglich, durch Suchabfragen herauszufinden, wo die Dateien eines Pakets sind oder aber zu welchem Paket eine Datei gehört.
Die einzige Hürde ist ein gewisses Basissystem, das man braucht, um den Redhat Paket Manager zu installieren. Dieses umfasst ein aktuelles FreeMiNT, die bash und noch ein paar andere Tools. Dies soll im folgenden kurz beschrieben werden.
Benötigt wird zum einen ein minix- oder besser ein ext2-Filesystem. Nur solch ein Filesystem besitzt die benötigten Unix-Eigenschaften und Funktionalitäten, die zwingend für den Betrieb von rpm vonnöten sind. Zudem ist das ext2-Filesystem deutlich schneller und leistungsfähiger als das vom TOS bekannte FAT-Filesystem. Dann braucht man noch ein paar grundlegende Filesystemstrukturen, Unterordner und so weiter, damit rpm installiert werden kann. Wem das alles zu kompliziert ist, sollte einen Blick auf EasyMiNT werfen (siehe unten).
Weiterhin sind gzip und tar nötig, auch cpio wird empfohlen. Alle nötigen Informationen (Installationsanleitung auf Englisch und die nötigen Archive) finden sich unter [1].
Start. Der erste auszuführende Befehl für rpm ist die Initialisierung der Datenbank, ohne die läuft gar nichts. In der bash wird dazu einfach "rpm -initdb" eingegeben. Danach sollten als erstes einige grundlegende Pakete installiert werden, dazu zählen u.a. rpm selbst, bash, info und mintbin.
Befehle. Der Redhat Paket Manager ist ein mächtiges Tool, das viele Befehle kennt. Gibt man „rpm -help“ ein, werden diese mit kurzer Beschreibung aufgelistet. Wer sich genauer informieren möchte, installiert „man“ und „info“ und tippt dann einfach „man rpm“ oder „info rpm“ in die Shell ein. Die wichtigsten Befehle werden in diesem Artikel nun kurz und beispielhaft erklärt.
Noch eine grundlegende Sache zur Namensgebung von rpm-Paketen: Der Name eines Pakets setzt sich aus verschiedenen Teilen zusammen. Ein Beispiel:
bash-2.05-5.m68kmint.rpm
Der erste Teil, "bash", ist der Paketname. Im zweiten Teil ist die Versionsnummer angegeben, hier "2.05". Ergänzt wird diese durch die Release-Version, hier "5". Im Anschluss folgt das System, für Sparemint ist das "m68kmint", die Dateiendung ist "rpm".
rpm -ivh bash-2.05-5.m68kmint.rpm
installiert das rpm-Paket bash. Dabei steht "i" für Installieren, "v" für den Verbose-Mode (rpm ist gesprächiger) und "h" für Hash. Nach den Befehlen folgt der Name des zu installierenden Pakets mit absolutem Pfad. Drückt man Return, wird rpm gestartet und gibt den Fortschritt der Installation mittels Rauten aus. Haben diese das Zeilende erreicht, ist die Installation beendet. Dabei verhindert rpm, dass Pakete doppelt installiert werden.
Der Redhat Paket Manager verwaltet auch sogenannte Abhängigkeiten. So kommt es vor, dass ein Paket andere benötigt, bevor es installiert werden kann. Das wird dann angezeigt und sieht zum Beispiel so aus:
/z/sparemint/RPMS/m68kmint>rpm
-ivh tetex-1.0.6-1.m68kmint.rpm
error: failed dependencies:
tmpwatch is needed by tetex-1.0.6-1
dialog is needed by tetex-1.0.6-1
tetex-fonts = 1.0.6 is needed by tetex-1.0.6-1
Man muss zuerst tmpwatch, dialog und tetex-fonts installieren, weil tetex zwingend darauf angewiesen ist. Es passiert vor allem anfangs öfter, dass man mehrere Pakete installieren muss für eines, das man wirklich benutzen möchte.
rpm -Uvh bash-2.05-S.m68kmint.rpm
Dieser Befehl installiert das Update des bash-Pakets. Den Befehl benutzt man, wenn zum Beispiel schon ein bash-rpm installiert ist, aber in einer älteren Version. Dabei werden die eingestellten Parameter beziehungsweise die dazugehörigen Dateien nicht mit überschrieben, sodass die bash nicht erneut konfiguriert werden muss.
rpm -e bash
Dieser Befehl deinstalliert die bash. Wichtig ist, hierbei nur den Paketnamen, nicht jedoch die Versionsnummer und so weiter anzugeben. Dabei wird aufgepasst, dass die Bash nicht von anderen Paketen benötigt wird, denn sonst schlägt die Deinstallation wie in diesem Beispiel für openssh fehl:
/z/sparemint/RPMS/m68kmint>rpm -e openssh
error: removing these packages would break dependencies:
openssh = 2.3.dpi-l is needed by openssh-clients-2.3.0pl-1
Der Redhat Paket Manager verfügt ausserdem über mächtige Abfrageroutinen für die Datenbank, hier sei auch nur ein kleiner Teil beispielhaft aufgeführt. Abfragen werden grundsätzlich mit der Option "-q" gemacht, wobei eine genauere Definition der Abfragewünsche erforderlich ist.
rpm -qa
Dies gibt die Namen aller installierten rpm-Pakete inklusive deren Versionsnummer aus.
rpm -ql hostename
Dies gibt alle zum Paket "hostename" gehörenden Dateien mit absolutem Pfad aus.
/>rpm -ql hostname /bin/dnsdomainname
/bin/domainname /bin/hostname /usr/doc/hostname-2.07 /usr/doc/hostname-
2.07/COPYRIGHT /usr/share/man/manl/ dnsdomainname.1.gz /usr/share/man/manl/
domainname.1.gz /usr/share/man/manl/ hostname.1.gz
In diesem Fall kann man zum Beispiel auch gleich sehen, dass eine Anleitung zu hostname in Form einer Manualpage für "man" vorliegt. Möchte man nur die Versionsnummer eines installierten Pakets wissen, ist folgendes einzugeben:
/>rpm -q hostname hostname-2.07-1
Zudem kann die Abfrage nach den Dateien eines Pakets auch umgedreht werden. Gibt man "rpm -qf absoluter Pfad und Dateiname>" ein, bekommt man den dazugehörigen Paketnamen:
/>rpm -qf /usr/share/man/manl/ hostname.l.gz hostname-2.07-1
So gibt es noch viele weitere Abfragemöglichkeiten, unter anderem lässt sich mit ihnen auch feststellen, ob zum Beispiel Dateien eines Pakets gelöscht wurden oder fehlen.
Auf der Sparemint-Homepage befinden sich auch noch einige interessante Tools, so zum Beispiel ein Skript, das automatisch feststellt, ob von den installierten Paketen inzwischen neuere Versionen vorliegen und diese gegebenenfalls automatisch installiert. Der Redhat Paket Manager selbst kann auch direkt Pakete aus dem Internet oder einem anderen Netzwerk installieren. Dazu wird einfach die komplette Adresse des Pakets angegeben, rpm lädt dieses dann runter und installiert es. Voraussetzung dafür ist natürlich eine bestehende Internetverbindung über MiNTNet.
Außerdem befinden sich auf der Sparemint-Homepage Listen mit den vorhanden rpm-Paketen sowie Informationen zu den jeweiligen Paketen. Auch die benötigten Archive zur Installation des Redhat Paket Manager und natürlich eine ausführliche Installationsanleitung (auf Englisch) sind dort zu finden.
Sparemint versteht sich nicht als komplette Distribution, sondern mehr als wachsende Sammlung von Paketen. Ein gestecktes Ziel, die einfache Installation von FreeMiNT/Sparemint, wurde vor kurzem erreicht. Mit der EasyMiNT-Distribution ist es erstmals auch für Anfänger möglich, ein Sparemint-System zu installieren. Das Motto lautet: „Zuerst installieren, dann lernen“. EasyMiNT wird in einer der nächsten Ausgaben der st-computer genauer vorgestellt, im Internet gibt es die kostenlose Distribution unter [2].
Bleibt noch zu sagen, dass Sparemint und alle Pakete kostenlos sind, sie unterliegen meistens der GNU Public License. Besonders verlockend erscheinen Pakete wie teTeX, GCC und diverse Entwicklertools mit vielen LIBs, die das Programmieren vereinfachen. Weiterhin gibt es diverse Tools wie sh-utils, diff, fileutils und natürlich die ganzen Netzwerksachen wie wget, lynx, openssh, apache, rsync, ftp, pine, mutt und so weiter. Insgesamt sind es 319 Pakete (Stand: 04.12.2001). Mittels des Xservers für GEM [3] ist es auch möglich, viele rpm-Pakete mit grafischer Oberfläche zu benutzen.
Vielen Dank an dieser Stelle an Frank Naumann, der immer ein offenes Ohr für Fragen hatte.
Für alle Interessenten mit einer schwachen Internetanbindung bietet Frank Naumann einen Serversnapshot als CD an.
[1] http://sparemint.atariforge.net/
[2] http://atari.st-katharina-apotheke.de/
[3] „X11 goes GEM“, st-computer 11-2001, Seite 24