In der Linux-Welt ist man in der glücklichen Lage oft Alternativen für einzelne Aufgaben zu haben. Anders als in der Windows-Welt bringen die meisten Linux-Distributionen einen Paketmanager mit die für eine Aufgabe verschiedene Programme zur Verfügung stellen. So gibt es z.B. viele ASCII-Editoren, Webbrowser oder E-Mail-Clients. In der Debian-Welt gibt es mit update-alternatives ein Tool zur Verwaltung dieser Programme mit konkurrierenden Funktionen. Streng genommen dient das Programm nur dazu symbolische Links auf diese Programme zu setzen.
Um sich einen Überblick über die mit update-alternatives verwalteten Bereiche zu erhalten ruft man es mit der Option –get-selections auf:
$ update-alternatives --get-selections arptables auto /usr/sbin/arptables-nft automake auto /usr/bin/automake-1.16 awk auto /usr/bin/mawk builtins.7.gz auto /usr/share/man/man7/bash-builtins.7.gz c++ auto /usr/bin/g++ c89 auto /usr/bin/c89-gcc c99 auto /usr/bin/c99-gcc cc auto /usr/bin/gcc cpp auto /usr/bin/cpp ebtables auto /usr/sbin/ebtables-nft editor manual /usr/bin/vim.basic ex auto /usr/bin/vim.basic fakeroot auto /usr/bin/fakeroot-sysv from auto /usr/bin/bsd-from gnome-www-browser auto /usr/bin/firefox-esr ip6tables auto /usr/sbin/ip6tables-nft iptables auto /usr/sbin/iptables-nft js auto /usr/bin/nodejs lzma auto /usr/bin/xz my.cnf auto /etc/mysql/mariadb.cnf pager auto /bin/less pico auto /bin/nano pinentry auto /usr/bin/pinentry-gtk-2 pinentry-x11 auto /usr/bin/pinentry-gtk-2 readline-editor auto /usr/bin/rlwrap rmt auto /usr/sbin/rmt-tar rview auto /usr/bin/vim.basic rvim auto /usr/bin/vim.basic start-here.svg auto /usr/share/icons/gnome/scalable/places/debian-swirl.svg vi auto /usr/bin/vim.basic view auto /usr/bin/vim.basic vim auto /usr/bin/vim.basic vimdiff auto /usr/bin/vim.basic w auto /usr/bin/w.procps write auto /usr/bin/bsd-write x-cursor-theme auto /usr/share/icons/Adwaita/cursor.theme x-www-browser auto /usr/bin/firefox-esr
Man sieht das es eine lange Liste ist und vieles von den Einträgen wird man niemals ändern. Interessant sind hier die Einträge z.B. für editor oder pager. Mit diesen Einträgen wird bestimmt welcher Editor bei cron -e oder welcher pager beim Anzeigen der Man-Pages mit man aufgerufen wird.
Um sich die auswählbaren Alternativen anzuzeigen wird das Programm mit der Option –list und der Section aufgerufen:
$ update-alternatives --list pager /bin/less /bin/more /usr/bin/most $ update-alternatives --list editor /bin/nano /usr/bin/vim.basic
Bei mir sind, wie man oben sieht, als Editoren nano und vim installiert und auswählbar. Mit der Option –config wird ein Menue aufgerufen mit dem man die gewünschte Änderung machen kann:
$ update-alternatives --config editor Es gibt 2 Auswahlmöglichkeiten für die Alternative editor (welche /usr/bin/editor bereitstellen). Auswahl Pfad Priorität Status ------------------------------------------------------------ 0 /bin/nano 40 automatischer Modus 1 /bin/nano 40 manueller Modus * 2 /usr/bin/vim.basic 30 manueller Modus Drücken Sie die Eingabetaste, um die aktuelle Wahl[*] beizubehalten, oder geben Sie die Auswahlnummer ein: