Debian - update-alternatives
 

Es ist möglich, mehrere Programme, die die gleiche oder ähnliche Funktionalität
bereitstellen, gleichzeitig auf einem System zu installieren. Beispielsweise sind auf vielen Systemen mehrere Texteditoren gleichzeitig installiert. Dies gibt den Benutzern eines Systems die Möglichkeit, falls gewünscht, jeweils einen anderen Editor zu verwenden. Allerdings wird es damit für eine Desktop-Umgebung wie KDE schwierig, eine gute Wahl für einen Editor zum Starten zu treffen, falls der Benutzer keine spezielle Wahl getroffen hat.

Debians Alternativ-System hat das Ziel, dieses Problem zu lösen. Ein generischer Name im Dateisystem wird von allen Programmen, die austauschbare Funktionalität bereitstellen, verwendet. Das Alternativ-System bestimmt zusammen mit dem Systemadministrator welches Programm tatsächlich durch diesen generischen Namen referenziert wird. Falls beispielsweise sowohl der Texteditor ed(1) als auch nvi(1) im System installiert sind, wird das Alternativ-System dafür sorgen, dass der generische Name /usr/bin/editor standardmäßig auf /usr/bin/nvi zeigt. Der Systemadministrator kann dies Ändern und dafür sorgen, dass er stattdessen auf /usr/bin/ed zeigt, und das Alternativ-System wird diese Einstellung nicht verändern, bis es explizit dazu aufgefordert wird. Das beste Beispiel für Probleme stellt in der Beziehung java dar, da es auf einem Debian-System schon mal so an die 3 verschiedenen java-Umgebungen geben kann. Neben den opensource-java-Ersatzumgebungen kann auch die java-Laufzeitumgebung von Sun installiert sein. Die Probleme, die dabei auftreten können, sind z.B. das Programme, die eine bestimmte java-Umgebung benötigen, mit der Falschen gar nicht starten, wie z.B. die Entwicklungsumgebung Eclipse oder das DVB-Tool ProjectX. Daher hier ein Beispiel, wie man die korrekte java-Umgebung für ProjectX auswählt (Hinweis: ProjectX benötigt das java-Runtime-Environment von Sun, es muß also vorher installiert werden!):

# update-alternatives --config java

There are 3 alternatives which provide `java'.

AuswahlAlternative
-----------------------------------------------------------------------------
*1/usr/lib/jvm/java-6-sun/jre/bin/java
 2/usr/bin/gij-4.3
+3/usr/lib/jvm/java-gcj/jre/bin/java

Drücken Sie die Eingabetaste, um die Vorgabe[*] beizubehalten,
oder geben Sie die Auswahlnummer ein: 1
Verwende >>/usr/lib/jvm/java-6-sun/jre/bin/java<<, um >>java<< bereitzustellen.

Wie man sieht, sind hier 3 java-Umgebungen vorhanden und man wählt durch drücken der Taste 1 die von Sun.