Scroll to navigation

update-alternatives(1) dpkg suite update-alternatives(1)

NAZWA

update-alternatives - zarządzanie dowiązaniami symbolicznymi określającymi domyślne polecenia

SKŁADNIA

update-alternatives [opcja...] polecenie

OPIS

update-alternatives tworzy, usuwa, wyświetla informacje o dowiązaniach symbolicznych składających się na system alternatyw Debiana oraz nimi zarządza.

Kilka programów mających tę samą lub podobną funkcjonalnoś może zosta zainstalowanych w systemie w tym samym czasie. Na przykład w wielu systemach jest zainstalowanych jednocześnie kilka edytorów tekstu. Stanowi to ułatwienie dla użytkowników takiego systemu, z których każdy może uruchomi inny edytor, jeśli ma na to ochotę. Z drugiej strony jest to jednak utrudnienie dla programów chcących podją właściwą decyzję, który edytor uruchomi, jeżeli użytkownik nie określił swoich preferencji co do edytora.

Celem systemu alternatyw Debiana jest rozwiązanie tego problemu. Ogólna nazwa w systemie plików jest współdzielona przez wszystkie pliki dostarczające zmieniającą się funkcjonalnoś. System alternatyw oraz administrator systemu określają, do którego obecnego pliku prowadzi ta ogólna nazwa. Na przykład, jeżeli zainstalowano zarówno edytor ed(1) jak i nvi(1), to system alternatyw spowoduje, że nazwa ogólna /usr/bin/editor będzie się odnosi do /usr/bin/nvi. Administrator systemu może zmieni to ustawienie na /usr/bin/ed, a system alternatyw tego nie zmieni, chyba że administrator każe mu tak zrobi.

Nazwa ogólna nie jest bezpośrednim dowiązaniem symbolicznym do wybranej alternatywy, ale jest dowiązaniem do pliku w katalogu alternatyw, które z kolei jest dowiązaniem do właściwego pliku. Jest tak zrobione dlatego, żeby zmiany wprowadzane przez administratora systemu były ograniczone do katalogu %CONFDIR%: standard FHS wymienia powody, aby tak zrobi.

When each package providing a file with a particular functionality is installed, changed or removed, update-alternatives is called to update information about that file in the alternatives system. update-alternatives is usually called from the postinst (configure) or prerm (remove and deconfigure) scripts in Debian packages.

Często użyteczne jest, aby pewna liczba alternatyw była zsynchronizowana, tak żeby była zmieniana jako grupa. Na przykład jeżeli jest zainstalowane kilka wersji edytora vi(1), to strona podręcznika /usr/share/man/man1/vi.1 powinna odpowiada wersji programu zainstalowanego jako /usr/bin/vi. update-alternatives obsługuje to przy pomocy dowiązań głównych i podrzędnych - zmiana dowiązania głównego powoduje zmianę skojarzonych dowiązań podrzędnych. Dowiązanie główne i skojarzone z nim dowiązania podrzędne tworzą grupę dowiązań.

Każda grupa dowiązań jest zawsze w jednym z dwóch trybów: automatycznym lub ręcznym. W trybie automatycznym podczas instalacji lub usuwania pakietu system alternatyw automatycznie zdecyduje, czy i jak aktualizowa dowiązania. W trybie ręcznym system alternatyw nie będzie zmieniał dowiązań i zostawi wszystkie decyzje administratorowi systemu.

Grupa dowiązań jest trybie automatycznym, kiedy jest po raz pierwszy wprowadzana do systemu. Jeżeli administrator systemu wprowadzi zmiany do automatycznych ustawień, będą one wzięte pod uwagę podczas następnego uruchomienia update-alternatives na takiej zmienionej grupie dowiązań, a grupa ta automatycznie przejdzie w tryb ręczny.

Z każdą alternatywą skojarzony jest priorytet. Jeżeli grupa dowiązań jest w trybie automatycznym, to wybraną alternatywą będzie ta, która ma najwyższy priorytet.

When using the --config option, update-alternatives will list all of the choices for the link group of which given name is the master alternative name. The current choice is marked with a ‘*’. You will then be prompted for your choice regarding this link group. Depending on the choice made, the link group might no longer be in auto mode. You will need to use the --auto option in order to return to the automatic mode (or you can rerun --config and select the entry marked as automatic).

Aby skonfigurowa nieinteraktywnie, można uży opcji --set (patrz niżej).

Różne pakiety dostarczające tych samych plików powinny współpracowa ze sobą w tym zakresie. Oznacza to, że używanie programu update-alternatives jest obowiązkowe dla wszystkich takich pakietów - nie jest możliwe nadpisanie pewnych plików w pakiecie, który nie używa mechanizmu update-alternatives.

TERMINOLOGIA

Ponieważ operacje programu update-alternatives są doś złożone, poniżej podane są terminy, które pomogą je zrozumie.
nazwa ogólna (lub dowiązanie alternatywy)
Nazwa, taka jak /usr/bin/editor, która odnosi się przez system alternatyw do jednego z kilku plików o podobnej funkcjonalności.
nazwa alternatywy
Nazwa dowiązania symbolicznego w katalogu alternatyw.
alternatywa (lub ścieżka alternatywy)
Nazwa określonego pliku w systemie plików, który w systemie alternatyw może by dostępny przez nazwę ogólną.
katalog alternatyw
Katalog zawierający dowiązania symboliczne, domyślnie %CONFDIR%/alternatives.
katalog administracyjny
Katalog zawierający informacje o stanie update-alternatives, domyślnie /var/lib/dpkg/alternatives.
grupa dowiązań
Zbiór powiązanych dowiązań symbolicznych, zarządzany jako grupa.
dowiązanie główne
Dowiązanie alternatywy w grupie dowiązań, które określa sposób konfigurowania innych dowiązań z tej grupy.
dowiązanie podrzędne
Dowiązanie alternatywy w grupie dowiązań, które jest kontrolowane przez ustawienie głównego dowiązania.
tryb automatyczny
Kiedy grupa dowiązań jest w trybie automatycznym, system alternatyw zapewni, że dowiązania z tej grupy wskazują na alternatywę o najwyższym priorytecie.
tryb ręczny
Kiedy grupa dowiązań jest w trybie ręcznym, system alternatyw nic nie zmieni w ustawieniach wprowadzonych przez administratora systemu.

POLECENIA

--install dowiązanie nazwa ścieżka priorytet [--slave dowiązanie nazwa ścieżka]...
Dodaje grupę alternatyw do systemu. dowiązanie jest ogólną nazwą głównego dowiązania, nazwa jest nazwą dowiązania symbolicznego w katalogu alternatyw, a ścieżka jest wprowadzaną alternatywą dla głównego dowiązania. Argumentami opcji --slave są nazwa ogólna, nazwa dowiązania symbolicznego w katalogu alternatyw i ścieżka alternatywy dla dowiązania podrzędnego. Można poda zero lub więcej opcji --slave, po każdej muszą następowa jej trzy argumenty. Należy zauważy, że główna alternatywa musi istnie, inaczej wywołanie się nie powiedzie. Jednak jeśli nie będzie istnie podrzędna alternatywa, odpowiednie dowiązanie podrzędne po prostu nie zostanie zainstalowane (ale nadal będzie wyświetlane ostrzeżenie). Jeśli w miejscu gdzie powinno by zainstalowane dowiązanie alternatywy istnieje rzeczywisty plik, jest on zachowywany, chyba że użyta jest opcja --force.

Jeżeli określona nazwa alternatywy już istnieje w systemie alternatyw, to podana informacja będzie dodana jako nowy zbiór alternatyw dla tej grupy. W przeciwnym wypadku zostanie utworzona nowa grupa, ustawiona w tryb automatyczny. Jeżeli grupa jest w trybie automatycznym, a priorytet nowo dodawanych alternatyw jest większy od priorytetu każdej z innych zainstalowanych alternatyw w tej grupie, to dowiązania symboliczne będą zaktualizowane tak, żeby prowadziły do nowo dodanych alternatyw.

--set nazwa ścieżka
Set the program path as alternative for name. This is equivalent to --config but is non-interactive and thus scriptable.
--remove nazwa ścieżka
Usuwa alternatywę i wszystkie dowiązania podrzędne z nią skojarzone. nazwa jest nazwą w katalogu alternatyw, ścieżka jest absolutną nazwą pliku, do której nazwa mogłaby by dowiązaniem. Jeżeli nazwa rzeczywiście jest dowiązaniem do ścieżki, to nazwa zostanie zaktualizowana, tak żeby wskazywała na inną odpowiednią alternatywę (zaś grupa jest ustawiana ponownie w tryb automatyczny), albo zostanie usunięta jeżeli nie pozostanie ani jedna alternatywa. Skojarzone dowiązania podrzędne zostaną odpowiednio zaktualizowane lub usunięte. Jeżeli dowiązanie nie prowadzi obecnie do ścieżki, to żadne dowiązania nie będą aktualizowane; zostanie tylko usunięta informacja o alternatywie.
--remove-all nazwa
Usuwa wszystkie dowiązania alternatyw i wszystkie skojarzone z nimi dowiązania podrzędne. nazwa jest nazwą w katalogu alternatyw.
--all
Wywołuje --config dla wszystkich alternatyw. Można to użytecznie połączy z --skip-auto aby przejrze i skonfigurowa wszystkie alternatywy, które nie są skonfigurowane w tryb automatyczny. Wyświetlane są również nieaktualne alternatywy. Dlatego prostym sposobem naprawienia uszkodzonych alternatyw jest wywołanie yes '' | update-alternatives --force --all.
--auto nazwa
Przełącza grupę dowiązań dla alternatywy w tryb automatyczny. Podczas tego procesu, główne dowiązanie wraz z jego dowiązaniami podrzędnymi będą zaktualizowane tak, aby wskazywa na alternatywę o najwyższym priorytecie.
--display nazwa
Display information about the link group. Information displayed includes the group's mode (auto or manual), the master and slave links, which alternative the master link currently points to, what other alternatives are available (and their corresponding slave alternatives), and the highest priority alternative currently installed.
--get-selections
List all master alternative names (those controlling a link group) and their status (since version 1.15.0). Each line contains up to 3 fields (separated by one or more spaces). The first field is the alternative name, the second one is the status (either auto or manual), and the last one contains the current choice in the alternative (beware: it's a filename and thus might contain spaces).
--set-selections
Read configuration of alternatives on standard input in the format generated by --get-selections and reconfigure them accordingly (since version 1.15.0).
--query nazwa
Display information about the link group like --display does, but in a machine parseable way (since version 1.15.0, see section QUERY FORMAT below).
--list nazwa
Wyświetla wszystkie cele w grupie dowiązań.
--config nazwa
Wyświetla dostępne alternatywy w grupie dowiązań i pozwala użytkownikowi interaktywnie wybra, której należy uży. Grupa dowiązań zostanie odpowiednio zaktualizowana.
--help
Wyświetla informację o użytkowaniu i kończy działanie.
--version
Wyświetla informację o wersji i pomyślnie kończy działanie.

OPCJE

--altdir katalog
Specifies the alternatives directory, when this is to be different from the default. Defaults to «%CONFDIR%/alternatives».
--admindir katalog
Specifies the administrative directory, when this is to be different from the default. Defaults to «%ADMINDIR%/alternatives»
--instdir directory
Specifies the installation directory where alternatives links will be created (since version 1.20.1). Defaults to «».
--root directory
Specifies the root directory (since version 1.20.1). This also sets the alternatives, installation and administrative directories to match. Defaults to «».
--log plik
Specifies the log file (since version 1.15.0), when this is to be different from the default (/var/log/alternatives.log).
--force
Allow replacing or dropping any real file that is installed where an alternative link has to be installed or removed.
--skip-auto
Pomija pytania o konfigurację alternatyw, które są właściwie skonfigurowane w trybie automatycznym. Ta opcja ma znaczenie tylko przy --config lub --all.
--quiet
Do not generate any comments unless errors occur.
--verbose
Generate more comments about what is being done.
--debug
Generate even more comments, helpful for debugging, about what is being done (since version 1.19.3).

KOD WYJŚCIA

0
Akcja zakończyła się powodzeniem.
2
Wystąpiły problemy podczas przetwarzania linii poleceń lub wykonywania akcji.

ŚRODOWISKO

DPKG_ADMINDIR
Jeśli ustawione oraz nie podano opcji --admindir, to będzie użyte jako bazowy katalog administracyjny.

PLIKI

%CONFDIR%/alternatives/
Domyślny katalog alternatyw. Można go zmieni opcją -altdir.
%ADMINDIR%/alternatives/
Domyślny katalog administracyjny. Można go zmieni opcją -admindir.

FORMAT ZAPYTANIA

The --query format is using an RFC822-like flat format. It's made of n + 1 blocks where n is the number of alternatives available in the queried link group. The first block contains the following fields:
Name: nazwa
Nazwa alternatywy w katalogu alternatyw.
Link: dowiązanie
Nazwa ogólna alternatywy.
Slaves: lista-alternatyw-podrzędnych
Gdy to pole jest obecne, następne wiersze zawierają wszystkie podrzędne dowiązania związane z głównym dowiązaniem alternatywy. W każdym wierszu podana jest jedna podrzędna alternatywa. Każdy wiersz zawiera jedną spację, ogólną nazwę alternatywy podrzędnej, kolejną spację i w końcu ścieżkę do dowiązania podrzędnego.
Status: status
Status alternatywy (auto lub manual).
Best: najlepszy wybór
Ścieżka najlepszej alternatywy dla tej grupy dowiązań. Nie jest wyświetlana, jeśli nie ma dostępnych żadnych alternatyw.
Value: aktualnie wybrana alternatywa
Ścieżka aktualnie wybranej alternatywy. Może również przyjmowa specjalną wartoś none - jest ona używana jeśli dowiązanie nie istnieje.

Inne bloki opisują dostępne alternatywy w grupie dowiązań, do której odnosi się zapytanie:

Alternative: ścieżka-alternatywy
Ścieżka do alternatywy opisywanej w tym bloku.
Priority: wartoś-priorytetu
Wartoś priorytetu alternatywy.
Slaves: lista-alternatyw-podrzędnych
When this field is present, the next lines hold all slave alternatives associated to the master link of the alternative. There is one slave per line. Each line contains one space, the generic name of the slave alternative, another space, and the path to the slave alternative.

Example

 $ 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

DIAGNOSTYKA

Po podaniu --verbose, update-alternatives wypisuje nieustannie informacje o podejmowanych działaniach na swoim standardowym wyjściu. Jeżeli wystąpi błąd, update-alternatives wyświetla komunikaty błędów na standardowym wyjściu błędów i kończy działanie z kodem wyjścia 2. Wypisywana diagnostyka powinna wszystko wyjaśnia, jeżeli tak nie jest, proszę zgłosi to jako błąd.

PRZYKŁADY

Istnieje klika pakietów, które dostarczają edytora tekstu kompatybilnego z edytorem vi, na przykład nvi i vim. To, który pakiet będzie używany, kontrolowane jest przez grupę dowiązań vi, zawierającą dowiązania do samego programu i odpowiadających mu stron podręcznika.

Aby wyświetli listę dostępnych pakietów, które dostarczają vi oraz jego bieżące ustawienie, należy uży akcji --display:

 update-alternatives --display vi

Aby wybra określoną implementację edytora vi, należy uży tego polecenia jako użytkownik root i wybra liczbę z listy:

 update-alternatives --config vi

Aby przywróci automatyczne wybieranie implementacji programu vi, należy jako użytkownik root wykona:

 update-alternatives --auto vi

ZOBACZ TAKŻE

ln(1), FHS - standard hierarchii systemu plików.

TŁUMACZE

Piotr Roszatycki <dexter@debian.org>, 1999
Bartosz Feński <fenio@debian.org>, 2004-2005
Robert Luberda <robert@debian.org>, 2006-2008
Wiktor Wandachowicz <siryes@gmail.com>, 2008
Michał Kułach <michal.kulach@gmail.com>, 2012
2020-07-08 1.20.5