Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
Ubuntu 8.04 „Hardy Heron“
Ein Vorteil von Linux ist die Vielfalt von Anwendungen. Man kann zwischen mindestens 24 Editoren oder 42 Mail-Programmen wählen. Diese Programme können alle gleichzeitig installiert sein. Der Benutzer hat alle Freiheit bei der Auswahl seiner Favoriten. Für andere Programme kann es schwierig sein auszuwählen, welches Programm es für eine Aufgabe benutzen soll.
Um zu vermeiden, dass ein Programm eine Installation eines anderen Programms über Abhängigkeiten erzwingt, gibt es für Debian und damit auch für Ubuntu das Alternativen-System. Das Alternativen-System ermöglicht es, aus mehreren Programmen mit derselben Funktionalität eines als Vorgabe zu wählen.
Alternativen werden über zweifache symbolische Links verwirklicht. Zum Beispiel ist /usr/bin/x-www-browser ein symbolischer Link auf /etc/alternatives/x-www-browser, was wiederum ein symbolischer Link auf den als Vorgabe eingestellten Webbrowser ist.
Diese anscheinend unsinnige "Umleitung" erklärt sich dadurch, dass der FHS empfiehlt, dass vom Systemadministrator durchgeführte Änderungen sich auf das Verzeichnis /etc beschränken sollten.
Das Alternativen-System kann mit dem Programm update-alternatives konfiguriert werden. Die folgenden Optionen sind gebräuchlich, wobei immer Eingabe und Ausgabe angegeben ist. Mitunter sind bei der Ausgabe noch weitere Ein- und Angaben des Benutzers notwendig.
--config
- Zeigt die verfügbaren Alternativen an und erlaubt es, interaktiv ein Programm als Vorgabe auszuwählen.
sudo update-alternatives --config x-www-browser
There are 4 alternatives which provide `x-www-browser'. Selection Alternative ----------------------------------------------- 1 /usr/bin/firefox * 2 /usr/bin/epiphany + 3 /usr/bin/dillo 4 /usr/bin/opera Press enter to keep the default[*], or type selection number: 2 Using `/usr/bin/epiphany' to provide `x-www-browser'.
--set
- Setzt das Programm als Alternative. Dies ist equivalent zu --config
, kann aber geskriptet werden, da es nicht-interaktiv ist.
sudo update-alternatives --set x-www-browser /usr/bin/epiphany
Using `/usr/bin/epiphany' to provide `x-www-browser'
--list
- Zeigt alle Ziele der Linkgruppe an.
update-alternatives --list x-www-browser
/usr/bin/firefox /usr/bin/epiphany /usr/bin/dillo /usr/bin/opera
--display
- Zeigt Informationen über die Linkgruppe an, von der Link der Master-Link ist. Die angezeigten Informationen enthalten den Modus der Gruppe (automatisch oder manuell), auf welche Alternative der Symlink 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.
update-alternatives --display x-www-browser
x-www-browser - status is manual. link currently points to /usr/bin/epiphany /usr/bin/firefox - priority 70 slave x-www-browser.1.gz: /usr/share/man/man1/firefox.1.gz /usr/bin/epiphany - priority 85 slave x-www-browser.1.gz: /usr/share/man/man1/epiphany.1.gz /usr/bin/dillo - priority 100 slave x-www-browser.1.gz: /usr/share/man/man1/dillo.1.gz /usr/bin/opera - priority 80 Current `best' version is /usr/bin/dillo.
Man kann dem Alternativen-System auch eigene Einträge für Anwendungen bekannt machen. Dafür dient die Option --install
. Wenn man zum Beispiel den Webbrowser unter /usr/local/bin installiert hat, sähe der Befehl so aus:
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/local/bin/firefox 100
Sehr ausführliche Informationen sind in den Manpages von update-alternatives nachzulesen. Dort ist leider nicht erklärt, wie man den generischen Namen des Master-Links von bereits installierten Alternativen-Gruppen herausbekommt. Diesen findet man in der zweiten Zeile der Datei /var/lib/dpkg/alternatives/GRUPPENNAME, also z.B. durch Eingabe von sed -ne 2p /var/lib/dpkg/alternatives/x-www-browser
.
GNOME bietet neben der Verwaltung der Alternativen per Konsole auch ein grafisches Werkzeug namens "G Alternatives". Die GUI lässt sich über die Paketverwaltung von Ubuntu installieren. Dazu muss das Paket
galternatives (universe, [4])
hinzugefügt [3] werden. Nach der Installation des Paketes kann die GUI über den Befehl
galternatives
gestartet werden. Unter Hardy und Lucid wird ein Menüeintrag unter:
"Anwendungen → Systemwerkzeuge → Alternatives Configurator"
erstellt.
Neben der Möglichkeit, Programme systemweit als bevorzugte Anwendung zu starten, gibt es in den Desktopumgebungen die Möglichkeit, diese nur für den jeweiligen Benutzer einzurichten. Diese Funktion ist jeweils einfach über die Menüs aufrufbar.
In Unity und bei der GNOME Shell können unter
"Systemeinstellungen → Informationen → Vorgabe-Programme"
einige Standardanwendungen eingestellt werden. Die Einstellung für das Terminal legt man stattdessen mit Hilfe desselben fest:
gsettings list-recursively org.gnome.desktop.default-applications # Einstellungen anzeigen gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal --maximize' # Einstellung ändern (Beispiel)
Im GNOME-Menü unter
"System → Einstellungen → Bevorzugte Anwendungen"
kann jeder Benutzer individuell einstellen, welcher Webbrowser, welches E-Mai-Programm und welches Terminalprogramm zu nutzen ist.
"Systemeinstellungen → Standard-Komponenten"
kann man auch unter KDE einstellen, welche Anwendungen benutzt werden sollen.
Damit ist es auch möglich, mittels sudo update-alternatives --config x-www-browser
den systemweiten Browser auf Iceweasel/Firefox einzustellen und nur den KDE-Systembrowser z.B. von Konqueror auf rekonq umzustellen. Dann öffnet z.B. der TV-Browser seine Links in Iceweasel/Firefox und Kmail in rekonq.