Provided by: dpkg_1.22.6ubuntu6.1_amd64 

BEZEICHNUNG
update-alternatives - Verwaltung symbolischer Links zur Bestimmung von Standardwerten für Befehle
ÜBERSICHT
update-alternatives [Option …] Befehl
BESCHREIBUNG
update-alternatives erzeugt, entfernt, verwaltet und zeigt die Informationen über die symbolischen Links,
die das „Alternativ-System“ bilden, an.
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 ein Programm
schwierig, eine gute Wahl für einen Editor zum Starten zu treffen, falls der Benutzer keine spezielle
Wahl getroffen hat.
Das Alternativ-System hat das Ziel, dieses Problem zu lösen. Ein generischer Name im Dateisystem wird von
allen Dateien, die austauschbare Funktionalität bereitstellen, verwendet. Das Alternativ-System bestimmt
zusammen mit dem Systemadministrator, welche Datei 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.
Der generische Name ist kein direkter symbolischer Link auf die ausgewählte Alternative. Stattdessen ist
es ein symbolischer Link auf einen Namen im Alternativ-Verzeichnis, welches wiederum ein symbolischer
Link auf die tatsächlich referenzierte Datei ist. Dies ist so realisiert, damit die Änderungen des
Systemadministrators auf das /etc-Verzeichnis beschränkt bleiben: der FHS (siehe dort) erklärt, warum
dies eine gute Idee ist.
Wenn ein Paket, das eine Datei mit einer bestimmten Funktionalität bereitstellt, installiert, geändert
oder entfernt wird, wird update-alternatives aufgerufen, um die Informationen über diese Datei im
Alternatives-System zu aktualisieren. update-alternatives wird normalerweise in den folgenden Debian-
Paketbetreuerskripten aufgerufen: postinst (configure), um die Alternative zu installieren und von prerm
und postrm (remove), um die Alternative zu entfernen. Hinweis: In den meisten (wenn nicht allen) Fällen
sollte keine weitere Betreuerskriptaktion update-alternatives aufrufen, insbesondere weder upgrade noch
disappear, da jede dieser anderen Aktionen zum Verlust des manuellen Zustands einer Alternative, oder zum
Hin-und Herspringen oder zum kompletten Umspringen, wenn mehrere von ihnen die gleiche Priorität haben,
führen kann.
Es ist oft sinnvoll, dass eine Reihe von Alternativen synchronisiert werden, so dass sie als Gruppe
geändert werden; wenn beispielsweise mehrere Versionen des vi(1)-Editors installiert sind, sollte die
Handbuchseite, die durch /usr/share/man/man1/vi.1 referenziert wird, zu dem ausführbaren Programm, dass
durch /usr/bin/vi referenziert wird, gehören. update-alternatives erledigt dies mit Hilfe von Master- und
Slave-Links; wird der Master-Link geändert, wird auch jeder zugehörige Slave-Link geändert. Ein Master-
Link und seine zugehörigen Slave-Links bilden zusammen eine Link-Gruppe.
Eine Linkgruppe ist zu jeder Zeit in einem der beiden Modi: automatisch oder manuell. Ist eine Gruppe im
automatischen Modus, dann wird das Alternativ-System bei der Paketinstallation und -entfernung
automatisch entscheiden, ob und wie die Links aktualisiert werden. Im manuellen Modus wird das
Alternativ-System die Wahl des Administrators beibehalten und Änderungen der Links vermeiden (außer
irgendetwas ist defekt).
Beim erstmaligen Einführen in das System befindet sich eine Linkgruppe im automatischen Modus. Führt der
Systemadministrator Änderungen an den automatischen Einstellungen des Systems durch, wird dies beim
nächsten Aufruf von update-alternatives auf die Linkgruppe bemerkt und die Gruppe wird automatisch in den
manuellen Modus umgeschaltet.
Jede Alternative hat eine ihr zugeordnete Priorität. Befindet sich eine Linkgruppe im automatischen
Modus, zeigen die Mitglieder einer Gruppe auf die Alternative mit der höchsten Priorität.
Wird die Option --config verwendet, dann zeigt update-alternatives alle Auswahlmöglichkeiten für die
Link-Gruppe an, für die der gegebene Name der Master-Alternative-Name ist. Die aktuelle Auswahl ist mit
‚*’ markiert. Sie werden dann aufgefordert, Ihre Auswahl bezüglich der Linkgruppe anzugeben. Abhängig von
der getroffenen Auswahl könnte sich die Link-Gruppe nicht mehr im automatischen Modus befinden. Sie
müssen dann die Option --auto verwenden, um wieder in den automatischen Zustand zurückzukehren (oder Sie
können --config erneut ausführen und den als automatisch markierten Eintrag auswählen).
Falls Sie nicht-interaktiv konfigurieren möchten, können Sie stattdessen die Option --set verwenden
(siehe unten).
Verschiedene Pakete, die die gleiche Datei bereitstellen, müssen dies kooperativ durchführen. Anders
gesagt ist in diesem Fall die Verwendung von update-alternatives für alle beteiligten Pakete zwingend. Es
ist nicht möglich, sich über eine Datei in einem Paket hinwegzusetzen, welches den update-
alternatives-Mechanismus nicht verwendet.
BEGRIFFE
Da die Tätigkeiten von update-alternatives recht komplex sind, sollen einige spezielle Begriffe helfen,
seine Vorgehensweise zu erläutern.
generischer Name (oder Alternativ-Link)
Ein Name wie /usr/bin/editor, der sich über das Alternativ-System auf eine Reihe von Dateien mit
ähnlicher Funktionalität bezieht.
Alternativ-Name
Der Name eines symbolischen Links im Alternativ-Verzeichnis.
Alternative (oder Alternativ-Pfad)
Der Name einer speziellen Datei im Dateisystem, die mittels eines generischen Namens über das
Alternativ-System zugreifbar gemacht werden kann.
Alternativ-Verzeichnis
Ein Verzeichnis, standardmäßig /etc/alternatives, das die Symlinks enthält.
administratives Verzeichnis
Ein Verzeichnis, standardmäßig /var/lib/dpkg/alternatives, das die update-alternatives
Zustandsinformationen enthält.
Linkgruppe
Ein Satz zusammengehörender Symlinks, die als Gruppe aktualisiert werden sollen.
Master-Link
Der Alternativ-Link in einer Linkgruppe, der bestimmt, wie die anderen Links in der Gruppe
konfiguriert werden.
Slave-Link
Ein Alternativ-Link in einer Linkgruppe, der durch die Einstellung des Master-Links gesteuert wird.
automatischer Modus
Ist eine Linkgruppe im automatischen Modus, dann sorgt das Alternativ-System dafür, dass die Links in
der Gruppe auf die für die Gruppe passende Alternative mit der höchsten Priorität zeigen.
manueller Modus
Ist eine Linkgruppe im manuellen Modus, dann führt das Alternativ-System keine Änderungen an den
Einstellungen des Systemadministrators durch.
BEFEHLE
--install Link Name Pfad Priorität [--slave Link Name Pfad] …
Fügt eine Gruppe von Alternativen zum System hinzu. Link ist der generische Name des Master-Links,
Name ist der Name seines Symlinks im Alternativ-Verzeichnis und Pfad ist die Alternative, die für den
Master-Link eingeführt wird. Die Argumente nach --slave sind der generische Name, Symlink-Name in dem
Alternativ-Verzeichnis und der Alternativ-Pfad für den Slave-Link. Null oder mehrere
--slave-Optionen, jede von drei Argumenten gefolgt, können spezifiziert werden. Beachten Sie, dass
die Master-Alternative existieren muss, ansonsten schlägt der Aufruf fehl. Falls allerdings eine
Slave-Alternative nicht existiert, wird der zugehörige Slave-Alternative-Link einfach nicht
installiert (es wird noch eine Warnung ausgegeben). Falls eine echte Datei an einer Stelle
installiert wird, an der ein Alternativ-Link installiert werden muss, wird diese beibehalten, solange
--force nicht verwandt wird.
Falls der angegebene Alternativ-Name bereits in den Aufzeichnungen des Alternativ-Systems existiert,
werden die angegebenen Informationen als neuer Satz von Alternativen für die Gruppe hinzugefügt.
Andernfalls wird eine neue Gruppe, eingestellt im automatischen Modus, mit dieser Information
hinzugefügt. Falls die Gruppe sich im automatischen Modus befindet und die Priorität der neu
hinzugefügten Alternative höher ist als die jeder anderen installierten Alternative für diese Gruppe,
werden die Symlinks aktualisiert, so dass sie auf die neu hinzugefügte Alternative zeigen.
--set Name Pfad
Setzt das Programm Pfad als Alternative für Name. Dies ist äquivalent zu --config, ist aber nicht
interaktiv und kann somit geskriptet werden.
--remove Name Pfad
Entfernt eine Alternative und alle zugehörigen Slave-Links. Name ist ein Name im Alternativ-
Verzeichnis, und Pfad ist ein absoluter Dateiname, zu dem Name gelinkt werden könnte. Falls Name
tatsächlich nach Pfad gelinkt ist, dann wird Name aktualisiert, um auf eine andere geeignete
Alternative zu zeigen (und die Gruppe wird wieder in den automatischen Modus versetzt) oder entfernt,
falls keine solche Alternative übrig bleibt. Zugehörige Slave-Links werden entsprechend aktualisiert
oder entfernt. Falls der Link derzeit nicht auf Pfad zeigt, werden keine Links geändert; nur die
Information über die Alternative wird entfernt.
--remove-all Name
Entfernt alle Alternativen und deren zugehörige Slave-Links. Name ist ein Name im Alternativ-
Verzeichnis.
--all
Ruft --config für alle Alternativen auf. In der Kombination mit --skip-auto kann dies nützlich sein,
um alle Alternativen zu prüfen und zu konfigurieren, die sich nicht im automatischen Modus befinden.
Defekte Alternativen werden auch angezeigt. Ein Aufruf von yes '' | update-alternatives --force --all
ist daher eine einfache Art, um alle defekten Alternativen zu reparieren.
--auto Name
Überführt die Linkgruppe hinter der Alternative mit Name Name in den automatischen Modus. Bei diesem
Prozess werden der Master-Symlink und seine Slave-Links aktualisiert, um auf die installierte
Alternative mit höchster Priorität zu zeigen.
--display Name
Zeigt Informationen über die Linkgruppe an. Die angezeigten Informationen enthalten den Modus der
Gruppe (automatisch oder manuell), die Master- und Slave-Links, auf welche Alternative der Master-
Link derzeit zeigt, welche weiteren Alternativen zur Verfügung stehen (und ihre zugehörigen Slave-
Alternativen), und die installierte Alternative mit der höchsten Priorität.
--get-selections
Führt alle Master-Alternativ-Namen (die eine Linkgruppe steuern) mit ihrem Status auf (seit Version
1.15.0). Jede Zeile enthält bis zu 3 Felder (getrennt durch mindestens ein Leerzeichen). Im ersten
Feld steht der Alternativ-Name, im zweiten der Status (entweder auto oder manual) und im letzten die
derzeitige Wahl der Alternative (Achtung: Dies ist ein Dateiname, der Leerzeichen enthalten kann).
--set-selections
Liest eine Konfiguration von Alternativen über die Standardeingabe im von „--get-selections“
generierten Format und konfiguriert die Alternativen entsprechend neu (seit Version 1.15.0).
--query Name
Zeigt alle Informationen über die Linkgruppe an, wie dies auch von --display erfolgt, allerdings in
einem maschinenlesbaren Format (seit Version 1.15.0, siehe nachfolgenden Abschnitt "ABFRAGE-FORMAT").
--list Name
Zeigt alle Ziele der Linkgruppe an.
--config Name
Zeigt die verfügbaren Alternativen für eine Linkgruppe an und erlaubt es dem Benutzer, interaktiv
auszuwählen, welche zu benutzen ist. Die Linkgruppe wird aktualisiert.
--help
Zeigt einen Hinweis zum Aufruf und beendet das Programm.
--version
Gibt die Version aus und beendet das Programm.
OPTIONEN
--altdir Verzeichnis
Spezifiziert das Alternativ-Verzeichnis, wenn sich dieses von der Standardeinstellung unterscheiden
soll. Vorgabe ist „/etc/alternatives“.
--admindir Verzeichnis
Spezifiziert das administrative Verzeichnis, wenn sich dieses von der Standardeinstellung
unterscheiden soll. Vorgabe ist „/var/lib/dpkg/alternatives“, falls DPKG_ADMINDIR nicht gesetzt
wurde.
--instdir Verzeichnis
Spezifiziert das Installationsverzeichnis, in dem Alternatives-Links erstellt werden (seit Dpkg
1.20.1). Standardmäßig „/“, falls DPKG_ROOT nicht gesetzt wurde.
--root Verzeichnis
Spezifiziert das Wurzelverzeichnis (seit Version 1.201.). Dies setzt auch passend die Alternatives-,
Installations- und administrativen Verzeichnisse. Standardmäßig „/“, falls DPKG_ROOT nicht gesetzt
wurde.
--log Datei
Gibt die Protokolldatei an (seit Version 1.15.0), wenn diese sich von der Vorgabe
(/var/log/alternatives.log) unterscheiden soll.
--force
Erlaubt die Ersetzung oder Entfernung von echten Dateien, die sich an Stellen befinden, an denen ein
Alternativ-Link installiert werden muss.
--skip-auto
Überspringt die Konfigurationsabfrage für Alternativen, die korrekt im automatischen Modus
konfiguriert sind. Diese Option ist nur mit --config oder --all relevant.
--quiet
Erzeugt keine Kommentare, es sei denn, ein Fehler tritt auf.
--verbose
Erzeugt mehr Kommentare darüber, was getan wird.
--debug
Erzeugt mehr Kommentare darüber, hilfreich für die Fehlersuche, was getan wird (seit Version 1.19.3).
RÜCKGABEWERT
0 Die angeforderte Aktion wurde erfolgreich ausgeführt.
2 Beim Lesen der Befehlszeile oder beim Ausführen der Aktion traten Probleme auf.
UMGEBUNG
DPKG_ROOT
Falls gesetzt und die Option --instdir oder --root nicht angegeben wurde, wird dies als
Dateisystemwurzelverzeichnis verwandt.
DPKG_ADMINDIR
Falls gesetzt und die Option --admindir nicht angegeben wurde, wird dies als Basis-
Administrationsverzeichnis verwandt.
DATEIEN
/etc/alternatives/
Das standardmäßige Alternativ-Verzeichnis. Kann mittels der Option --altdir geändert werden.
/var/lib/dpkg/alternatives/
Das standardmäßige administrative Verzeichnis. Kann mittels der --admindir Option geändert werden.
ABFRAGE-FORMAT
Das Format von --query ist ein RFC822-artiges, flaches Format. Es besteht aus n+1 Absätzen, wobei n die
Anzahl der in einer abgefragten Linkgruppe verfügbaren Alternativen ist. Der erste Absatz enthält die
folgenden Felder:
Name: Name
Der alternative Name im Alternativ-Verzeichnis.
Link: Link
Der generische Name der Alternative.
Slaves: Liste-von-Slaves
Wenn diese Feld vorhanden ist, enthält die nächste Zeile alle Slave-Links, die dem Master-Link dieser
Alternativen zugeordnet sind. Pro Zeile wird ein Slave aufgeführt. Jede Zeile enthält ein
Leerzeichen, den generischen Namen des Slaves, ein weiteres Leerzeichen und den Pfad zu dem Slave-
Link.
Status: Status
Der Status der Alternative (auto oder manual).
Best: beste-Wahl
Der Pfad der besten Alternative für diese Linkgruppe. Nicht vorhanden, falls keine Alternative
verfügbar ist.
Value: derzeit-ausgewählte-Alternative
Der Pfad der derzeit ausgewählten Alternative. Es akzeptiert auch den magischen Wert none, der
verwandt wird, falls der Link nicht existiert.
Die anderen Absätze beschreiben die verfügbaren Alternativen in der abgefragten Linkgruppe:
Alternative: Pfad-dieser-Alternativen
Pfad zu der Alternative dieses Absatzes.
Priority: Prioritätswert
Wert der Priorität dieser Alternativen.
Slaves: Liste-von-Slaves
Wenn dieses Feld vorhanden ist, enthält die nächste Zeile alle Slave-Alternativen, die dem Master-
Link dieser Alternativen zugeordnet sind. Pro Zeile wird ein Slave aufgeführt. Jede Zeile enthält ein
Leerzeichen, den generischen Namen des Slaves, ein weiteres Leerzeichen und den Pfad zu der Slave-
Alternative.
Beispiel
$ update-alternatives --query editor
Name: editor
Link: /usr/bin/editor
Slaves:
editor.1.gz /usr/share/man/man1/editor.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/editor.1.gz
editor.it.1.gz /usr/share/man/it/man1/editor.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/editor.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/editor.1.gz
Status: auto
Best: /usr/bin/vim.basic
Value: /usr/bin/vim.basic
Alternative: /bin/ed
Priority: -100
Slaves:
editor.1.gz /usr/share/man/man1/ed.1.gz
Alternative: /usr/bin/vim.basic
Priority: 50
Slaves:
editor.1.gz /usr/share/man/man1/vim.1.gz
editor.fr.1.gz /usr/share/man/fr/man1/vim.1.gz
editor.it.1.gz /usr/share/man/it/man1/vim.1.gz
editor.pl.1.gz /usr/share/man/pl/man1/vim.1.gz
editor.ru.1.gz /usr/share/man/ru/man1/vim.1.gz
DIAGNOSE
Mit --verbose berichtet update-alternatives fortwährend über seine Aktivitäten auf seinem
Standardausgabekanal. Falls Probleme auftreten, gibt update-alternatives eine Fehlermeldung auf seinem
Standardfehlerkanal aus und beendet sich mit dem Exit-Status 2. Die Diagnostiken sollten selbsterklärend
sein; falls Sie dies nicht so empfinden, melden Sie dies bitte als Fehler.
BEISPIELE
Es gibt mehrere Pakete, die einen vi-kompatiblen Texteditor bereitstellen, beispielsweise nvi und vim.
Welcher benutzt wird, wird durch die Linkgruppe vi eingestellt, welche Links für das Programm selber und
die zugehörige Handbuchseite beinhaltet.
Um alle verfügbaren Programme anzuzeigen, die vi bereitstellen, und die dazu gehörigen Einstellungen,
benutzen Sie die Aktion --display:
update-alternatives --display vi
Um eine bestimmte vi-Implementation auszuwählen, benutzen Sie als Root den folgenden Befehl und wählen
dann eine Zahl aus der Liste aus:
update-alternatives --config vi
Um zur automatischen Auswahl der vi-Implementation zurückzukehren, führen Sie Folgendes als Root aus:
update-alternatives --auto vi
SIEHE AUCH
ln(1), FHS (der Dateisystem-Hierarchie-Standard, Filesystem Hierarchy Standard).
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2023 von Helge Kreutzmann <debian@helgefjell.de>, 2007 von
Florian Rehnisch <eixman@gmx.de> und 2008 von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese
Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer für
die Kopierbedingungen. Es gibt KEINE HAFTUNG.
1.22.6 2024-07-17 update-alternatives(1)