update-alternatives(1) | dpkg suite | update-alternatives(1) |
update-alternatives - symbolische koppelingen onderhouden welke standaardcommando's bepalen
update-alternatives [optie...] commando
update-alternatives creëert, verwijdert, onderhoudt en toont informatie over de symbolische koppelingen die het Debian systeem van alternatieven vormen.
Het is mogelijk dat verschillende programma's die dezelfde of vergelijkbare functies vervullen, op hetzelfde moment op hetzelfde systeem geïnstalleerd zijn. Op veel systemen zijn bijvoorbeeld tezelfdertijd meerdere teksteditors geïnstalleerd. Dit biedt de gebruikers van een systeem keuzemogelijkheden en laat iedere gebruiker toe desgewenst een andere editor te gebruiken. Maar het maakt het ook moeilijk voor een programma om een goede keuze te maken betreffende de op te starten editor indien de gebruiker geen specifieke voorkeur opgegeven heeft.
Debian's systeem van alternatieven is erop gericht dit probleem op te lossen. Een algemene naam in het bestandssysteem wordt onderling gedeeld door alle bestanden die inwisselbare functionaliteit bieden. Het systeem van alternatieven samen met de systeembeheerder bepalen naar welk effectief bestand door deze algemene naam verwezen wordt. Indien bijvoorbeeld zowel de editor ed(1) als nvi(1) op het systeem geïnstalleerd zijn, zal het systeem van alternatieven er voor zorgen dat de algemene naam /usr/bin/editor standaard naar /usr/bin/nvi verwijst. De systeembeheerder kan dit aanpassen en hem in plaats daarvan naar /usr/bin/ed doen verwijzen. In dat geval zal het alternatievensysteem deze instelling niet wijzigen totdat het er expliciet om gevraagd wordt.
De algemene naam is geen rechtstreekse symbolische koppeling naar het geselecteerde alternatief. Hij is eerder een symbolische koppeling naar een naam in de map alternatives die op zijn beurt een symbolische koppeling is naar het eigenlijke bestand waarnaar verwezen wordt. Dit wordt gedaan zodat de wijzigingen van de systeembeheerder beperkt kunnen blijven tot de map /etc: de FHS (zie aldaar) legt uit waarom dit een goede zaak is.
Bij het installeren, wijzigen of verwijderen van elk pakket dat een bestand met een bepaalde functionaliteit levert, wordt update-alternatives aangeroepen om informatie over dat bestand in het systeem voor alternatieven bij te werken. update-alternatives wordt gewoonlijk aangeroepen vanuit de volgende scripts van de Debian pakketbeheerder, postinst (configure) om het alternatief te installeren en vanuit prerm en postrm (remove) om het alternatief te verwijderen. Opmerking: In de meeste (zo niet alle) gevallen mogen geen andere acties van beheerderscripts update-alternatives aanroepen, in het bijzonder upgrade en disappear niet, aangezien elke andere dergelijke actie de handmatige status van een alternatief kan verloren laten gaan, of het alternatief tijdelijk kan laten heen en weer schakelen, of volledig laten overschakelen wanneer meerdere van hen dezelfde prioriteit hebben.
Het is dikwijls nuttig om een aantal alternatieven te synchroniseren, zodat ze als groep aangepast worden. Als er bijvoorbeeld verschillende versies van de editor vi(1) geïnstalleerd zijn, moet de man-pagina waarnaar verwezen wordt door /usr/share/man/man1/vi.1 overeenkomen met het uitvoerbaar programma waarnaar door /usr/bin/vi verwezen wordt. update-alternatives handelt dit af met behulp van master (hoofd-) en slave (secundaire of slaaf-) koppelingen. Als de hoofdkoppeling gewijzigd wordt, worden eventuele ermee verband houdende secundaire koppelingen ook gewijzigd. Een hoofdkoppeling en zijn ermee verbonden secundaire koppelingen vormen samen een link group (koppelingengroep).
Elke koppelingengroep bevindt zich op gelijk welk moment in de tijd in één van twee modi: automatische modus of manuele modus. Als een groep zich in automatische modus bevindt, dan zal wanneer pakketten geïnstalleerd of verwijderd worden, het alternatievensysteem automatisch beslissen of en hoe de koppelingen bijgewerkt moeten worden. In de manuele modus zal het alternatievensysteem de keuze van de systeembeheerder behouden en vermijden om de koppelingen te wijzigen (behalve wanneer iets defect is).
Een koppelingengroep bevindt zich in de automatische modus als die voor het eerst op het systeem geïntroduceerd wordt. Indien de systeembeheerder aan de automatische instellingen van het systeem veranderingen aanbrengt, zal dit de volgende keer dat update-alternatives uitgevoerd wordt op de groep van de gewijzigde koppeling, opgemerkt worden en de groep zal automatisch omgeschakeld worden naar manuele modus.
Aan elk alternatief is een prioriteit gekoppeld. Als een koppelingengroep zich in de automatische modus bevindt, dan zijn het de alternatieven met de hoogste prioriteit waarnaar verwezen zal worden door leden van die groep.
Als de optie --config gebruikt wordt, zal update-alternatives een lijst geven met al de keuzemogelijkheden voor de koppelingengroep waarvan de opgegeven naam de naam is van het hoofdalternatief. De huidige keuze wordt gemarkeerd met een‘*’. Daarna zult u gevraagd worden naar uw keuze voor deze koppelingengroep. Afhankelijk van de gemaakte keuze, kan het zijn dat de koppelingengroep niet langer in de modus auto (automatische modus) verkeert. U zult de optie --auto moeten gebruiken om terug te keren naar de automatische modus (of u kunt --config opnieuw uitvoeren en het item selecteren dat als automatisch gemarkeerd staat).
Indien u op een niet-interactieve manier wilt configureren, kunt u in de plaats daarvan de optie --set gebruiken (zie hierna).
Verschillende pakketten die hetzelfde bestand leveren, moeten dat op een coöperatieve manier doen. Het gebruik van update-alternatives is met andere woorden in dergelijke gevallen verplicht voor alle betrokken pakketten. Het is niet mogelijk om een bepaald bestand uit een pakket te vervangen dat geen gebruik maakt van het update-alternatives mechanisme.
Aangezien de activiteit van update-alternatives behoorlijk ingewikkeld is, kunnen een aantal specifieke termen helpen bij het verduidelijken van zijn werking.
Indien de opgegeven alternatief-naam reeds bestaat in de registers van het alternatievensysteem, dan zal de verstrekte informatie toegevoegd worden als een nieuwe reeks van alternatieven voor de groep. Anders zal een nieuwe groep in automatische modus toegevoegd worden met die informatie. Indien de groep zich in automatische modus bevindt en de pas toegevoegde alternatieven een grotere prioriteit hebben dan om het even welke andere geïnstalleerde alternatieven voor die groep, dan zullen de symbolische koppelingen bijgewerkt worden zodat ze verwijzen naar de pas toegevoegde alternatieven.
De indeling die gebruikt wordt bij --query is een RFC822-achtige vlakke indeling. Ze bestaat uit n + 1 blokken, waarbij n het aantal beschikbare alternatieven is uit de opgevraagde koppelingengroep. Het eerste blok bevat de volgende velden:
De andere blokken geven de beschikbare alternatieven weer in de opgevraagde koppelingengroep:
$ 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
Als update-alternatives gebruikt wordt met --verbose, dan ratelt het onophoudelijk over zijn activiteiten op zijn standaard uitvoerkanaal. Indien er zich problemen voordoen, produceert update-alternatives foutmeldingen op zijn standaard foutkanaal en geeft het een afsluitstatus 2 terug. Deze diagnostiek zou eenvoudig te verstaan moeten zijn. Mocht u dit niet vinden, gelieve dat dan als een bug te rapporteren.
Er zijn verschillende pakketten die een teksteditor leveren die compatibel is met vi, bijvoorbeeld nvi en vim. Welke er gebruikt wordt, wordt geregeld door de koppelingengroep vi, die koppelingen bevat naar het programma zelf en naar de ermee verband houdende man-pagina.
Om weer te geven welke beschikbare pakketten vi leveren en wat de huidige instelling ervoor is, gebruikt u de actie --display:
update-alternatives --display vi
Om een specifieke vi-toepassing te kiezen, gebruikt u als systeembeheerder dit commando en vervolgens kiest u een nummer uit de lijst:
update-alternatives --config vi
Om terug te keren naar een situatie waarbij de vi-toepassing automatisch gekozen wordt, doet u als systeembeheerder dit:
update-alternatives --auto vi
ln(1), FHS (the Filesystem Hierarchy Standard - de standaardisatie van bestandsorganisatie en mappenstructuur op unix-achtige systemen).
2023-09-13 | 1.20.13 |