eisman - Paketmanager fuer eisfair
==================================

eisman ist eine Neuimplementierung eines Paketmanagers fuer eisfair.
Das Paket hat zum Ziel, moeglichst weitgehend die bisherige Funktion
des Paketmanagers abzudecken und zugleich neue Konzepte einzufuehren,
wie sie von anderen Paketmanagern her bereits bekannt sind.

Der Paketmanager ist in das eisfair-Menue integriert worden und sollte
sich weitgehend so bedienen lassen, wie das von der bisherigen Loesung
bereits bekannt ist. Allerdings bietet eisman auch fuer die Kommando-
zeile ein Benutzer-Interface an, das dem Anwender Zugang zu weiterfueh-
renden Funktionen erlaubt.

Im Folgenden befindet sich eine Kurzreferenz der eisman Kommandos. Es
wird dabei lediglich auf eine Auswahl der Kommandozeilenschalter ein-
gegangen. Zusaetzliche Informationen lassen sich mit dem Kommando:

eisman <befehl> --help

auf der Konsole abrufen.


Kurzreferenz der Kommandozeilenbefehle
======================================

eisman help
-----------
Listet alle verfuegbaren Kommandos auf.


eisman version
--------------
Zeit die aktuelle Version des Paketmanagers an.


eisman init
-----------
Initialisierung der Datenbank der installierten Pakete. Muss nach der
Installation einmalig aufgerufen werden (bzw. wird vom Installations-
Skript von eisman bereits aufgerufen). Ein wiederholter Aufruf fuehrt zu
einem Fehler.


eisman update
-------------
Aktualisierung der Paketquellen. Muss regelmaessig aufgerufen werden, um
die lokale Datenbank der verfuegbaren Pakete zu aktualisieren. Der
Vorgang dauert beim ersten Aufruf ziemlich lange. Bei wiederholten
Aufrufen dagegen laeuft der Befehl vergleichsweise schnell durch.
Falls an der URL-Konfiguration etwas geaendert wurde, muss der Befehl
ebenfalls erneut aufgerufen werden.


eisman upgrade [ --unstable ]
-----------------------------
Es werden auf der Basis der Datenbank der verfuegbaren Pakete alle an-
stehenden Updates aufgelistet und entsprechend ihrer Reihenfolge auto-
matisch installiert. Soll auf Pakete aktualisiert werden, die den
Status "unstable" tragen, muss dies explizit angegeben werden (nicht
ratsam!)


eisman install [ --unstable ] <paket 1> [ ... <paket n> ]
---------------------------------------------------------
Installation von einem oder mehreren Paketen. Die Liste der erforder-
lichen Abhaengigkeiten wird dabei automatisch ermittelt und bei Bedarf
ebenfalls installiert.

Die Angabe eines Paketes kann in den folgenden Formen erfolgen:

Pakete ohne Angabe einer Version: <paketname>

Pakete mit Angabe einer Version: <paketname>=<version>

Paketnamen und Version sind dabei mit dem Zeichen '=' ohne weitere
Leerzeichen zu verbinden.

Bezeichnet <paketname>=<version> ein unstable-Paket, dann muss die
Installation mit dem Schalter '--unstable' erfolgen. eisman bevorzugt
immer die Installation von stabilen Paketen, solange die Anforderungen
an die Version erfuellt sind.


eisman uninstall [--recursive] <paket>
------------------------
Deinstallation eines Paketes. Das Paket darf nur deinstalliert werden,
wenn keine weiteren installierten Pakete Abhaengigkeiten darauf besitzen.

Mit dem optionalen Schalter --recursive kann nicht nur das Paket selbst,
sondern alle Pakete, auf die das Paket als einziges Abhaengigkeiten
besitzt in einem Rutsch deinstalliert werden. Dabei ist zu beachten,
dass ein Paket, in dessen Paketbeschreibung eine Abhaengigkeit fehlt,
unter Umstaenden nach einer solchen Deinstallation nicht mehr richtig
funktioniert, da ihm dann eine Komponente fehlt. Daher bitte nur mit
Vorsicht verwenden.


eisman query [ --sections="<Sektion1>,<Sektion2>..." ]
             [ --excl-sections="<Sektion1>,<Sektion2>..." ]
             [ --fields="<Info-Feld1>,<Info-Feld2>..." ]
             [ --url="<URL>" ]
             [ --unstable ]
             [ --installed ]
             [ Paket ]
----------------------------------------------------------
Maechtiger Befehl zur Abfrage der Paketdatenbanken. Unter Angabe eines
Paketnamens kann nach diesem gesucht werden. Wird kein Paketnamen an-
gegeben, werden alle Pakete aufgelistet.

Die Ergebnismenge kann begrenzt werden, indem die Sektionen aufgelistet
werden, in denen die Suche stattfinden soll. Alternativ koennen auch
Sektionen gezielt von der Suche ausgeschlossen oder nach einer URL
gefiltert werden.

Standardmaessig werden die Datenfelder "name", "version", "short", "url"
und "status" aufgelistet. Es kann jedoch auch eine davon abweichende
Liste von Datenfeldern angefordert werden. Hier sind alle verfuegbaren
Felder aufgelistet:

possible values for fields:
   name     package name
   version  package version
   short    short package description
   date     date of creation
   author   author of the package
   section  section of the package
   space    disk space needed in MB
   url      URL of the package
   status   status of the package
   require  required packages (multiple results possible)
   link     linked packages (that need update if installed)
   text     descriptive text (multiple results possible)

Normalerweise erfolgt die Abfrage in der Datenbank der verfuegbaren
Befehle. Alternativ kann mit --installed angegeben werden, dass in den
bereits installierten Paketen gesucht werden soll. Auch liefert die
Abfrage normalerweise nur stabile Pakete zurueck. Sollen auch Pakete
mit unstable-Status angezeigt werden, muss dies mit --unstable an-
gefordert werden.


eisman search [ --sections="<Sektion1>,<Sektion2>..." ]
              [ --excl-sections="<Sektion1>,<Sektion2>..." ]
              [ --fields="<Info-Feld1>,<Info-Feld2>..." ]
              [ --url="<URL>" ]
              [ --unstable ]
              [ --installed ]
              [ Suchbegriff ]
----------------------------------------------------------
Der Befehl funktioniert wie "eisman query", mit dem Unterschied, dass
der angegebene Suchbegriff auch ein Teil eines Paketnamens sein kann.
Ist ein Paketnamen nicht genau bekannt, bietet sich die Suche mit
"eisman search" an.


eisman check <Paketnamen> [ <Version> ]
eisman check -diff <Version 1> <Version 2>
-------------------------------------------
Pruefung, ob ein Paket installiert ist oder nicht und ob die optional
angegebene Version neuer oder aelter als der installierte Stand ist.
Alternativ koennen mittels der Option "-diff" zwei Versionen verglichen
werden.


eisman usage <Paket>
---------------------
Zeigt in einer Baumstruktur alle Pakete auf, die auf ein das angegebene
Paket ein Abhaengigkeit definiert haben. Auf diese Weise kann man
einfach herausfinden, ob eine bestimmte Komponente deinstalliert werden
kann oder wer diese Komponente noch verwendet.
