update-alternatives - underhåller symboliska länkar
för att bestämma standardkommandon
update-alternatives [flagga...]
åtgärd
update-alternatives skapar, tar bort, underhåller
och visar information om de symboliska länkar som ingår i
Debians alternativsystem.
Det är möjligt för flera kommandon som
tillhandahåller identisk eller liknande funktionalitet att vara
installerade på ett system samtidigt. Till exempel har många
system flera textredigeringsprogram installerade samtidigt, vilket ger
användarna på systemet valmöjligheter, var och en kan
använda olika textredigeringsprogram om de så önskar,
men det gör det svårt för ett program att göra
ett bra val av textredigerare att anropa om en användare inte har
gjort ett specifikt val.
Debians alternativsystem försöker lösa detta
problem. Ett generiskt namn i filsystemet delas av alla filer som
tillhandahåller utbytbar funktionalitet. Alternativsystemet och
systemadministratören anger tillsammans vilken specifik fil som ska
refereras av sitt generiska namn. Till exempel kan alternativsystemet
låta det generiska namnet /usr/bin/editor att peka mot
/usr/bin/nvi som standard om både textredigeringsprogrammet
ed(1) och nvi(1) båda är installerade på
systemet. Systemadministratören kan överstyra detta och
låta det peka på /usr/bin/ed istället, och
alternativsystemet kommer inte ändra denna inställning
förrän det ombeds att göra det.
Det generiska namnet är inte en direkt symbolisk
länk till det valda alternativet. Istället är det en
symbolisk länk till ett namn i katalogen alternatives, vilket
i sin tur är en symbolisk länk till den faktiska fil det pekar
mot. Detta görs så att systemadministratörens
ändringar kan begränsas till katalogen /etc: FHS (se
detta) ger orsaker till varför detta är Bra.
När alla paket som tillahandahåller en fil med en
specifik funktionalitet installeras, ändras eller tas bort anropas
update-alternatives för att uppdatera information om filen i
alternativsystemet. update-alternatives anropas vanligtvis
från Debians paketutvecklarskript postinst (konfigurera)
för att installera alternativet och från prerm och
postrm (ta bort) för att ta bort alternativet.
Observera: i de flesta (om inte alla) fall bör inga andra
utvecklarskript anropa update-alternatives, specifikt varken
upgrade eller disappear, eftersom alla sådana
åtgärder kan gör att den manuella inställningen
för ett alternativ går förlorat, eller att alternativet
tillfälligt svänger eller permanent växlas när
flera av dem har samma prioritet.
Det är ofta lämpligt för ett antal alternativ
att vara synkroniserade, så att de ändras i grupp. Till
exempel, om det är flera versioner av textredigeraren vi(1)
installerade bör manualsidan som refereras till av
/usr/share/man/man1/vi.1 motsvara den binär som refereras till
av /usr/bin/vi. update-alternatives hanterar detta genom
huvud- och slav-länkar. När huvudlänken
uppdateras ändras även anslutna slavlänkar. En
huvudlänk och dess anslutna slavar utgör en
länkgrupp.
En länkgrupp kan vid varje given tidpunkt vara i ett av
två lägen: automatisk eller manuell. När en grupp
är i automatiskt läge kommer alternativsystemet automatiskt
att bestämma när och hur länkar ska uppdateras
då paket installeras eller tas bort. I manuellt läge kommer
alternativsystemet att behålla administratörens val och
undvika att ändra länkarna (förutom om något
är trasigt).
Länkgrupper är i automatiskt läge när
de först introduceras på systemet. Om
systemadministratören gör ändringar till systemets
automatiska inställningar kommer detta att noteras nästa
gång update-alternatives körs på den
ändrade länkens grupp och gruppen kommer automatiskt att
växlas till manuellt läge.
Varje alternativ har en prioritet kopplad till sig.
När en länkgrupp är i automatiskt läge kommer
det alternativ som medlemmar i gruppen pekar mot vara den med den
högsta prioriteten.
När flaggan --config används kommer
update-alternatives att visa alla val för länkgruppen
där namn är huvudalternativnamnet. Det aktuella valet
är markerat med en ”*”. Du kommer därefter att
få välja vad som ska göras med länkgruppen.
Beroende på vad du väljer kommer längruppen inte
längre att vara i auto-läge. Du måste
använda flaggan --auto för att återgå
till automatiskt läge (eller köra --config på
nytt och välja alternativet som märkts som automatiskt).
Om du vill konfigurera icke-interaktivt kan du använda
flaggan --set i stället (se nedan).
Olika paket som tillhandahåller samma fil måste
göra så i samförstånd. Det betyder att
det är ett krav att alla involverade paket använder sig
av update-alternatives. Det är inte möjligt att
överstyra en fil ett paket som inte använder
update-alternatives-mekanismen.
Efter update-alternatives aktiviteter är ganska
komplexa blir det enklare att förstå hur det fungerar genom
att vi förklarar några specifika termer.
- generiskt namn
(eller alternativlänk).
- Ett namn, till exempel /usr/bin/editor, som via alternativsystemet
pekar på en av flera filer med liknande funktionalitet.
- alternativnamn
- Namnet på en symbolisk länk i alternativkatalogen.
- alternativ (eller
alternativsökväg)
- Namnet på en specifik fil i filsystemet, som kan vara
tillgänglig via ett generiskt namn med hjälp av
alternativsystemet.
- alternativkatalog
- En katalog, som standard /etc/alternatives, som innehåller
de symboliska länkarna.
- administrativ
katalog
- En katalog, som standard /var/lib/dpkg/alternatives, som
innehåller tillståndsinformation för
update-alternatives.
- länkgrupp
- En uppsättning relaterade symboliska länkar, avsedda att
uppdateras som en grupp.
- huvudlänk
- Alternativlänken i en länkgrupp som bestämmer hur de
andra länkarna i gruppen ställs in.
- slavlänk
- En alternativlänk i en länkgrupp som styrs av hur
huvudlänken ställs in.
- automatiskt
läge
- När en länkgrupp är i automatiskt läge
försäkrar alternativsystemet att länkarna i gruppen
pekar på det högstprioriterade alternativet som är
lämpligt för gruppen.
- manuellt
läge
- När en grupp är i manuellt läge kommer inte
alternativsystemet att utföra några ändringar till
systemadministratörens inställningar.
- --install
länk namn sökväg prioritet [--slave
länk namn sökväg]...
- Lägg till en grupp med alternativ till systemet. länk
är det generiska namnet för huvudlänken, namn
är namnet på dess symboliska länk i
alternativkatalogen och sökväg är alternativet
som introduceras för huvudlänken. Argumenten efter
--slave är det generiska namnet, namnet på den
symboliska länken i alternativkatalogen och alternativet för
slavlänken. Noll eller flera --slave-flaggor kan anges,
där alla följs av tre argument. Observera att om ett
slavalternativ inte finns kommer motsvarande slavlänk helt enkelt
inte att installeras (en varning kommer fortfarande att visas). Om en
verklig fil är installerad där en alternativlänk
måste installeras behålls den såvida inte
--force används.
Om det angivna alternativnamnet redan finns i
alternativsystemets databas kommer informationen som anges att
läggas in som en ny uppsättning av alternativ för
gruppen. Om inte kommer en ny grupp, inställd på
automatiskt läge, att läggas till med given information.
Om gruppen är i automatiskt läge och det alternativ som
läggs in har högre prioritet än alla andra
installerade alternativ för gruppen kommer de symboliska
länkarna att uppdateras så att de pekar på de
nyligen tillagda alternativen.
- --set namn
sökväg
- Sätt programmet sökväg som ett alternativ till
namn. Detta motsvarar --config men är
icke-interaktivt och kan därmed användas i ett skript.
- --remove
namn <sökväg>
- Ta bort ett alternativ och alla dess anknutna slavlänkar.
namn är ett namn i alternativkatalogen och
sökväg är ett absolut filnamn till vilket
namn kunde länkas. Om namn faktiskt är
länkat till sökväg kommer namn att
uppdateras till att peka på ett annat lämpligt alternativ
(och gruppen ställs tillbaka till automatiskt läge), eller
att tas bort om det inte finns något alternativ kvar. Anknutna
slavlänkar kommer uppdateras eller tas bort på motsvarande
vis. Om länken inte för tillfället pekar på
sökväg kommer inga länkar att uppdateras,
endast informationen om alternativet tas bort.
- --remove-all
namn
- Tar bort alla alternativ och alla deras anslutna slavlänkar.
namn är ett namn i alternativkatalogen.
- --all
- Anropar --config på alla alternativ. Kan med framgång
kombineras med --skip-auto för att gå igenom och
konfigurera alla alternativ som inte är ställda i
automatiskt läge. Trasiga alternativ visas också. Ett enkelt
sätt att fixa alla trasiga alternativ är därmed att
anropa yes '' | update-alternatives --force --all.
- --auto
namn
- Ställ in länkgruppen bakom alternativet för
namn till automatiskt läge. Detta får till
följd att den huvudsakliga symboliska länken och dess slavar
uppdateras till att peka på det högst prioriterade
installerade alternativet.
- --display
namn
- Visa information om länkgruppen. Information som visas är
gruppens läge (automatiskt eller manuellt), huvud- och
slavlänk, vilket alternativ den huvudsakliga länken just nu
pekar på, vilka andra alternativ som är tillgängliga
(och deras motsvarande slavalternativ), samt det högst prioriterade
alternativ som för närvarande är installerat.
- --get-selections
- Visa alla huvudalternativnamn (de som styr en länkgrupp) och deras
status (sedan version 1.15.0). Varje rad innehåller upp till tre
fält (avdelade med ett eller flera blanksteg). Det första
fältet är alternativnamnet, det andra är status
(antingen auto eller manuell), och det sista
innehåller det nuvarande valet för alternativet (observera:
detta är ett filnamn och kan därmed innehålla
blanksteg).
- --set-selections
- Läs en alternativkonfiguration från standard in på
formatet som skapas av --get-selections och konfigurera om dem
på motsvarande sätt (sedan version 1.15.0).
- --query
namn
- Visa information om länkgruppen på samma sätt som
--display, men i ett maskintolkbart sätt (sedan version
1.15.0, se stycket FRÅGEFORMAT nedan).
- --list
namn
- Visar alla mål för länkgruppen.
- --config
namn
- Visa tillgängliga alternativ för en länkgrupp och
låt användaren att interaktivt välja vilken som ska
användas. Länkgruppen uppdateras.
- --help
- Visar hjälpskärm och avslutar.
- --version
- Visar version och avslutar.
- --altdir
katalog
- Anger alternativkatalogen om detta inte ska vara förvalet.
Förval är ”/etc/alternatives”.
- --admindir
katalog
- Anger den administrativa katalogen om detta inte ska vara förvalet.
Förval är ”/var/lib/dpkg/alternatives”
om DPKG_ADMINDIR inte har satts.
- --instdir
katalog
- Anger installationskatalogen där alternativlänkar kommer
skapas (sedan version 1.20.1). Förval är
”/” om DPKG_ROOT inte har satts.
- --root
katalog
- Anger rotkatalogen (sedan version 1.20.1). Detta sätter
också alternativkatalog, installationskatalog och administrativ
katalog motsvarande. Förval är ”/” om
DPKG_ROOT inte har satts.
- --log fil
- Anger loggfilen (sedan version 1.15.0), om det ska vara en annan än
förvalet (/var/log/alternatives.log).
- --force
- Låt att ersätta eller ta bort en verklig fil som
installerats där en alternativlänk måste installeras
eller tas bort.
- --skip-auto
- Hoppa över konfigureringsfrågor för alternativ som
är korrekt konfigurerade i automatiskt läge. Denna flagga
är endast relevant för --config och
--all.
- --quiet
- Skriv inte några kommentarer såvida det inte uppstår
ett fel.
- --verbose
- Visa fler kommentarer om vad update-alternatives gör.
- --debug
- Visa ännu fler kommentarer, användabara för
felsökning, om vad som görs (sedan version 1.19.3).
- 0
- Den önskade funktionen utfördes utan fel.
- 2
- Problem uppstod vid tolkning av kommandoraden eller när funktionen
skulle utföras.
- DPKG_ROOT
- Om satt och flaggan --instdir eller -root inte har angivits
kommer det användas som filsystemets rotkatalog.
- DPKG_ADMINDIR
- Om satt och flaggan --admindir inte har angivits används det
som bas-administrativ katalog.
- /etc/alternatives/
- Den förvalda alternativkatalogen. Kan överstyras med flaggan
--altdir.
- /var/lib/dpkg/alternatives/
- Den förvalda administrativa katalogen. Kan överstyras med
flaggan --admindir.
Formatet för --query använder ett
RFC822-liknande platt format. Det består av n + 1 stycken
där n är antalet tillgängliga alternativ i den
efterfrågade länkgruppen. Det första stycket
innehåller följande fält:
- Namn:
namn
- Alternativets namn i den alternativa katalogen.
- Link:
länk
- Generiskt namn för alternativet.
- Slaves:
lista-över-slavar
- När detta fält är tillgängligt
innehåller next-raderna alla slavlänkar som kopplas
till huvudlänken för alternativet. Varje rad beskriver en
slav. Varje rad innehåller ett blanksteg, det generiska namnet
på slavalternativet, ytterligare ett blanksteg, och
sökvägen till slavalternativet.
- Status:
status
- Status för alternativet (auto eller manual).
- Best:
bästa-val
- Sökvägen till det bästa alternativet i
länkgruppen. Tas inte med om inget alternativ är
tillgängligt.
- Value:
för-närvarande-valt-alternativ
- Sökvägen till det för närvarande valda
alternativet. Kan även ta det magiska värdet none
(inget). Det används om det inte finns någon
länk.
Övriga stycken beskriver tillgängliga alternativ i
den efterfrågade länkgruppen:
- Alternative:
sökväg-till-alternativet
- Sökväg till alternativet som beskrivs i stycket.
- Priority:
prioritetsvärde
- Värdet för prioriteten på alternativet.
- Slaves:
lista-över-slavar
- När detta fält anges innehåller next-raderna
alla slavalternativ som kopplas till huvudlänken för
alternativet. Varje rad beskriver en slav. Varje rad innehåller ett
blanksteg, det generiska namnet på slavalternativet, ytterligare
ett blanksteg, och sökvägen till slavalternativet.
$ 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
Med --verbose kommer update-alternatives att
beskriva i det oändliga vad det gör på sin standard
ut-kanal. Om ett fel uppstår skriver update-alternatives ut
felmeddelanden på sin standard fel-kanal och avslutar med felkoden 2.
Diagnostikinformationen bör vara självförklarande,
sänd in en felrapport om du inte tycker att den är det.
Det är flera paket som tillhandahåller en
textredigerare kompatibel med vi, till exempel nvi och
vim. Vilken bestäms via länkgruppen vi, vilken
innehåller länkar både för själva
programmet och dessa anknutna manualsida.
För att visa vilka tillgängliga paket som
tillhandahåller vi, samt dess aktuella inställning,
använd kommandot --display:
update-alternatives --display vi
För att välja en specifik implementation av
vi, utför detta kommando som root och välj sedan ett
tal från listan:
update-alternatives --config vi
För att återgå till att
vi-implementationen väljs automatiskt, utför detta som
root:
update-alternatives --auto vi
ln(1), FHS (the Filesystem Hierarchy Standard).
ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.