update\-alternatives
Section: dpkg\-suite (1)
Updated: 2019-04-02
Page Index
NAAM
update-alternatives - onderhoud symbolische koppelingen die
standaardcommando's definiëren
OVERZICHT
update-alternatives [
optie...]
commando
BESCHRIJVING
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.
Telkens een pakket dat voorziet in een bestand met een specifieke
functionaliteit, wordt geïnstalleerd, gewijzigd of verwijderd, wordt
update-alternatives aangeroepen om de informatie over dat bestand bij te
werken in het alternatievensysteem. update-alternatives wordt gewoonlijk
aangeroepen vanuit het script postinst (configure/configureren) of
prerm (remove/verwijderen en deconfigure/de-configureren) uit Debian
pakketten.
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.
TERMINOLOGIE
Aangezien de activiteit van
update-alternatives behoorlijk ingewikkeld
is, kunnen een aantal specifieke termen helpen bij het verduidelijken van
zijn werking.
- algemene naam (of alternatief-koppeling)
-
Een naam, zoals /usr/bin/editor, die via het systeem van alternatieven
verwijst naar één of een aantal bestanden met een gelijkaardige functie.
- alternatief-naam
-
De naam van een symbolische koppeling in de map alternatives.
- alternatief (of alternatief-pad)
-
De naam van een specifiek bestand in het bestandssysteem, dat met behulp van
het alternatievensysteem via een algemene naam benaderbaar gemaakt kan
worden.
- alternatievenmap
-
Een map, standaard /etc/alternatives, die de symbolische koppelingen
bevat.
- beheersmap
-
Een map, standaard /var/lib/dpkg/alternatives, die de statusinformatie voor
update-alternatives bevat.
- koppelingengroep
-
Een reeks symbolische koppelingen die met elkaar verband houden en waarvan
het de bedoeling is dat ze als groep bijgewerkt worden.
- hoofdkoppeling (master link)
-
De alternatief-koppeling uit een koppelingengroep die bepaalt hoe de andere
koppelingen uit de groep geconfigureerd worden.
- secundaire koppeling (of slaafkoppeling) (slave link)
-
Een alternatief-koppeling uit een koppelingengroep die gecontroleerd wordt
door de instelling van de hoofdkoppeling.
- automatische modus
-
Als een koppelingengroep zich in automatische modus bevindt, verzekert het
alternatievensysteem dat de koppelingen uit de groep verwijzen naar het voor
de groep passende alternatief met de hoogste prioriteit.
- manuele modus
-
Als een koppelingengroep zich in manuele modus bevindt, zal het
alternatievensysteem geen enkele wijziging aanbrengen aan de instellingen
van de systeembeheerder.
COMMANDO'S
- --install koppeling naam pad prioriteit [--slave koppeling naam pad]...
-
Voeg een groep alternatieven toe aan het systeem. koppeling is de
algemene naam voor de hoofdkoppeling. naam is de naam van zijn
symbolische koppeling in de alternatievenmap. pad is het alternatief dat
voor de hoofdkoppeling aangevoerd wordt. De argumenten na --slave zijn de
algemene naam, de naam van de symbolische koppeling in de alternatievenmap
en het alternatief-pad van een slaaf-koppeling. Nul of meer
--slave-opties kunnen opgegeven worden. Elk van hen moet door drie
argumenten gevolgd worden. Merk op dat het hoofdalternatief moet bestaan. Zo
niet, dan zal de aanroep mislukken. Indien evenwel een slaaf-alternatief
niet bestaat, dan zal de overeenkomstige slaaf-alternatief-koppeling gewoon
niet geïnstalleerd worden (er zal wel een waarschuwing gegeven
worden). Indien een echt bestand geïnstalleerd is waar een
alternatief-koppeling geïnstalleerd moet worden, wordt dat behouden tenzij
de optie --force gebruikt wordt.
-
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.
- --set naam pad
-
Stel het programma pad in als alternatief voor naam. Dit is het
equivalent voor --config, maar het is non-interactief en dus bruikbaar in
scripts.
- --remove naam pad
-
Verwijder een alternatief en alle eraan gekoppelde secundaire (of slaaf-)
koppelingen. naam is een naam in de alternatievenmap en pad is een
absolute bestandsnaam waaraan naam gekoppeld zou kunnen zijn. Indien
naam inderdaad gekoppeld is aan pad, dan wordt naam bijgewerkt,
zodat die verwijst naar een ander geschikt alternatief (en wordt de groep
opnieuw in automatische modus geplaatst), of verwijderd als er geen
dergelijk alternatief meer voorhanden is. Gelieerde slaafkoppelingen zullen
navenant bijgewerkt of verwijderd worden. Indien de koppeling momenteel niet
naar pad verwijst, worden geen koppelingen gewijzigd. Enkel de informatie
over het alternatief wordt dan verwijderd.
- --remove-all naam
-
Verwijder alle alternatieven en alle ermee verbonden secundaire (of slaaf-)
koppelingen. naam is een naam in de alternatievenmap.
- --all
-
Voer --config uit op alle alternatieven. Het kan nuttig zijn om dit te
combineren met --skip-auto om alle alternatieven te inspecteren en te
configureren, die niet in automatische modus geconfigureerd zijn. Ook worden
defecte alternatieven getoond. Een eenvoudige manier om alle defecte
alternatieven te repareren is dus het aanroepen van yes '' |
update-alternatives --force --all.
- --auto naam
-
Schakel de koppelingengroep achter het alternatief voor naam om naar
automatische modus. In dit proces worden de hoofdkoppeling en zijn
slaafkoppelingen bijgewerkt zodat ze verwijzen naar de geïnstalleerde
alternatieven met de hoogste prioriteit.
- --display naam
-
Toon informatie over de koppelingengroep. De getoonde informatie bevat de
modus van de groep (auto of manueel), de hoofdkoppeling en de
slaafkoppelingen, het alternatief waarnaar de hoofdkoppeling momenteel
verwijst, de andere alternatieven die beschikbaar zijn (en hun
overeenkomstige slaaf-alternatieven) en het momenteel geïnstalleerde
alternatief met de hoogste prioriteit.
- --get-selections
-
Som alle namen op van de hoofdalternatieven (die welke een koppelingengroep
controleren) en hun status (sinds versie 1.15.0). Elke regel kan tot 3
velden bevatten (door één of meer spaties van elkaar gescheiden). Het eerste
veld is de naam van het alternatief. Het tweede is de status ervan (ofwel
auto ofwel manual). Het laatste bevat het momenteel gekozen
alternatief (let op: dit is een bestandsnaam en kan dus spaties bevatten).
- --set-selections
-
Lees op standaardinvoer configuratie voor alternatieven in de door
--get-selections gegenereerde indeling en herconfigureer ze
dienovereenkomstig (sinds versie 1.15.0).
- --query naam
-
Geef informatie weer over de koppelingengroep zoals --display dat doet,
maar dan op een manier die door een machine ontleed kan worden (sinds versie
1.15.0, zie hierna bij het onderdeel INDELING GEGEVENSOPVRAGING).
- --list naam
-
Geef alle doelen van de koppelingengroep weer.
- --config naam
-
Toon de beschikbare alternatieven voor een koppelingengroep en laat de
gebruiker toe om interactief te selecteren welke er gebruikt moet worden. De
koppelingengroep wordt bijgewerkt.
- --help
-
Toon info over het gebruik en sluit af.
- --version
-
Toon de versie en sluit af.
OPTIES
- --altdir map
-
Duidt de alternatievenmap aan als die anders dan de standaard moet zijn.
- --admindir map
-
Duidt de beheersmap aan als die anders dan de standaard moet zijn.
- --log bestand
-
Duidt het logbestand aan (sinds versie 1.15.0) als dat anders dan de
standaard (/var/log/alternatives.log) moet zijn.
- --force
-
Laat toe om een echt bestand te vervangen of te verwijderen dat
geïnstalleerd is waar een alternatief-koppeling geïnstalleerd of verwijderd
moet worden.
- --skip-auto
-
Voor alternatieven die in automatische modus behoorlijk geconfigureerd zijn,
de configuratievraag overslaan. Deze optie is enkel relevant in combinatie
met --config of --all.
- --quiet
-
Geen commentaar genereren tenzij er zich fouten voordoen.
- --verbose
-
Genereer meer commentaar bij wat er gedaan wordt.
- --debug
-
Zelfs nog meer commentaar genereren bij wat er gedaan wordt, nuttig bij het
debuggen (sinds versie 1.19.3).
AFSLUITSTATUS
- 0
-
De gevraagde actie werd succesvol uitgevoerd.
- 2
-
Er deden zich problemen voor tijdens het ontleden van de commandoregel of
het uitvoeren van de actie.
OMGEVING
- DPKG_ADMINDIR
-
Indien dit ingesteld is en de optie --admindir niet opgegeven werd, zal
dit gebruikt worden als de hoofdmap voor beheersdoeleinden.
BESTANDEN
- /etc/alternatives/
-
De standaardmap voor alternatieven. Kan gewijzigd worden met de optie
--altdir.
- /var/lib/dpkg/alternatives/
-
De standaardmap voor beheersdoeleinden. Kan gewijzigd worden met de optie
--admindir.
INDELING GEGEVENSOPVRAGING
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:
- Name: naam
-
De naam van het alternatief in de alternatievenmap.
- Link: koppeling
-
De algemene naam van het alternatief.
- Slaves: lijst-van-slaven
-
Als dit veld aanwezig is, bevatten de volgende regels alle
slaaf-koppelingen die gelieerd zijn met de hoofdkoppeling van het
alternatief. Per regel wordt één slaaf vermeld. Elke regel bevat één spatie,
de algemene naam van het slaaf-alternatief, opnieuw een spatie en het pad
naar de slaaf-koppeling.
- Status: status
-
The status van het alternatief (auto of manual) (automatisch of
manueel).
- Best: beste-keuze
-
Het pad naar het beste alternatief voor deze koppelingengroep. Komt niet
voor als er geen alternatieven beschikbaar zijn.
- Value: momenteel-geselecteerd-alternatief
-
Het pad naar het momenteel geselecteerde alternatief. Het kan ook de
magische waarde none hebben. Die wordt gebruikt als de koppeling niet
bestaat.
De andere blokken geven de beschikbare alternatieven weer in de opgevraagde
koppelingengroep:
- Alternative: pad-van-dit-alternatief
-
Het pad naar het alternatief uit dit blok.
- Priority: waarde-van-prioriteit
-
De prioriteitswaarde van dit alternatief.
- Slaves: lijst-van-slaven
-
Als dit veld voorkomt, bevatten de volgende regels alle
slaaf-alternatieven die gelieerd zijn aan de hoofdkoppeling van het
alternatief. Per slaaf wordt één regel gebruikt. Elke regel bevat één
spatie, de algemene naam van het slaaf-alternatief, opnieuw een spatie en
het pad naar het slaaf-alternatief.
Voorbeeld
$ 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
DIAGNOSTIEK
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.
VOORBEELDEN
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
ZIE OOK
ln(1), FHS, the Filesystem Hierarchy Standard. (Standaardisatie van
bestandsorganisatie en mappenstructuur op unix-achtige systemen)