Scroll to navigation

update-alternatives(1) dpkg suite update-alternatives(1)

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.

When using the --config option, update-alternatives will list all of the choices for the link group of which given name is the master alternative name. The current choice is marked with a ‘*’. You will then be prompted for your choice regarding this link group. Depending on the choice made, the link group might no longer be in auto mode. You will need to use the --auto option to return to the automatic mode (or you can rerun --config and select the entry marked as automatic).

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.

Ein Name wie /usr/bin/editor, der sich über das Alternativ-System auf eine Reihe von Dateien mit ähnlicher Funktionalität bezieht.
Der Name eines symbolischen Links im Alternativ-Verzeichnis.
Der Name einer speziellen Datei im Dateisystem, die mittels eines generischen Namens über das Alternativ-System zugreifbar gemacht werden kann.
Ein Verzeichnis, standardmäßig /etc/alternatives, das die Symlinks enthält.
Ein Verzeichnis, standardmäßig /var/lib/dpkg/alternatives, das die update-alternatives Zustandsinformationen enthält.
Ein Satz zusammengehörender Symlinks, die als Gruppe aktualisiert werden sollen.
Der Alternativ-Link in einer Linkgruppe, der bestimmt, wie die anderen Links in der Gruppe konfiguriert werden.
Ein Alternativ-Link in einer Linkgruppe, der durch die Einstellung des Master-Links gesteuert wird.
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.
Ist eine Linkgruppe im manuellen Modus, dann führt das Alternativ-System keine Änderungen an den Einstellungen des Systemadministrators durch.

BEFEHLE

Add a group of alternatives to the system. link is the generic name for the master link, name is the name of its symlink in the alternatives directory, and path is the alternative being introduced for the master link. The arguments after --slave are the generic name, symlink name in the alternatives directory and the alternative path for a slave link. Zero or more --slave options, each followed by three arguments, may be specified. Note that the master alternative must exist or the call will fail. However if a slave alternative doesn't exist, the corresponding slave alternative link will not be installed (a warning will still be displayed). If some real file is installed where an alternative link has to be installed, it is kept unless --force is used.

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.

Setzt das Programm Pfad als Alternative für Name. Dies ist äquivalent zu --config, ist aber nicht interaktiv und kann somit geskriptet werden.
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.
Entfernt alle Alternativen und deren zugehörige Slave-Links. Name ist ein Name im Alternativ-Verzeichnis.
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.
Ü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.
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.
List all master alternative names (those controlling a link group) and their status. Each line contains up to 3 fields (separated by one or more spaces). The first field is the alternative name, the second one is the status (either auto or manual), and the last one contains the current choice in the alternative (beware: it's a filename and thus might contain spaces).

Supported since version 1.15.0.

Read configuration of alternatives on standard input in the format generated by --get-selections and reconfigure them accordingly.

Supported since version 1.15.0.

Display information about the link group like --display does, but in a machine parseable way (see section "QUERY FORMAT" below).

Supported since version 1.15.0.

Zeigt alle Ziele der Linkgruppe an.
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.
Zeigt einen Hinweis zum Aufruf und beendet das Programm.
Gibt die Version aus und beendet das Programm.

OPTIONEN

Spezifiziert das Alternativ-Verzeichnis, wenn sich dieses von der Standardeinstellung unterscheiden soll. Vorgabe ist „/etc/alternatives“.
Spezifiziert das administrative Verzeichnis, wenn sich dieses von der Standardeinstellung unterscheiden soll. Vorgabe ist „/var/lib/dpkg/alternatives“, falls DPKG_ADMINDIR nicht gesetzt wurde.
Specifies the installation directory where alternatives links will be created. Defaults to «/» if DPKG_ROOT has not been set.

Supported since version 1.20.1.

Specifies the root directory. This also sets the alternatives, installation and administrative directories to match. Defaults to «/» if DPKG_ROOT has not been set.

Supported since version 1.20.1.

Specifies the log file, when this is to be different from the default (/var/log/alternatives.log).

Supported since version 1.15.0.

Erlaubt die Ersetzung oder Entfernung von echten Dateien, die sich an Stellen befinden, an denen ein Alternativ-Link installiert werden muss.
Überspringt die Konfigurationsabfrage für Alternativen, die korrekt im automatischen Modus konfiguriert sind. Diese Option ist nur mit --config oder --all relevant.
Erzeugt keine Kommentare, es sei denn, ein Fehler tritt auf.
Erzeugt mehr Kommentare darüber, was getan wird.
Generate even more comments, helpful for debugging, about what is being done.

Supported since 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

Falls gesetzt und die Option --instdir oder --root nicht angegeben wurde, wird dies als Dateisystemwurzelverzeichnis verwandt.
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:

Der alternative Name im Alternativ-Verzeichnis.
Der generische Name der Alternative.
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.
Der Status der Alternative (auto oder manual).
Der Pfad der besten Alternative für diese Linkgruppe. Nicht vorhanden, falls keine Alternative verfügbar ist.
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:

Pfad zu der Alternative dieses Absatzes.
Wert der Priorität dieser Alternativen.
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-2025 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.

2026-09-09 1.23.11