Co dokładnie robi „aktualizacja-alternatywy”?


99

Do czego służy polecenie update-alternatives?

Weź ten przykład:

sudo update-alternatives --install /usr/bin/java java /usr/local/java/jre1.7.0_09/bin/java 1

Co to robi? Czym różni się od dodania jdk do ścieżki?

Powiedzmy, że uruchomiłem polecenie. Jak powrócę do pierwotnego stanu?


2
Można również użyć sudo update-alternatives --config javaa javaci javawswybierać pomiędzy zainstalowanymi wersjami.
— Shayan

Odpowiedzi:


73

Aktualizuje łącza w /etc/alternativescelu wskazania programu w tym celu. Jest wiele przykładów, jak x-www-browser, editoritp że będzie link do przeglądarki lub redaktor preferencjami. Niektóre skrypty lub narzędzia systemowe mogą wymagać ręcznej edycji pliku (np. Konflikt konfiguracji dpkg), a oni sprawdzą alternatywy, by dać ci edytor do wyboru. Do javatego jest środowisko wykonawcze Java - Oracle, OpenJRE, etc.

Linki w /etc/alternativesto tylko symboliczne linki. Możesz je zobaczyć na przykład za pomocą

ls -l /etc/alternatives

Co więcej, zwykłe /usr/binpliki binarne są również dowiązaniami symbolicznymi. Na przykład:

ls -l /usr/bin/java
  lrwxrwxrwx 1 root root 22 Aug 14 10:33 /usr/bin/java -> /etc/alternatives/java
ls -l /etc/alternatives/java
  lrwxrwxrwx 1 root root 46 Aug 14 10:33 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java

Więc nie PATHtrzeba modyfikować. Po prostu używa dowiązań symbolicznych.


Innymi słowy, mogę wpisać jedną komendę, która poprosi mnie o wybory. To jedyna dodatkowa zaleta w porównaniu z ustawieniem właściwej ścieżki. Powiedzmy też, że mam zainstalowanego innego dostawcę Java. Jak zaktualizować Javę, aby wskazywała na dwóch różnych dostawców?
— Deweloper Android

Nie możesz wskazać obu tak, jak to opisujesz. Jego celem jest posiadanie jednego wskaźnika do implementacji wpisu, jak w podanym przykładzie. Bez pytań I każdy z kandydatów powinien działać - powinna to być tylko preferencja administratora. I znowu: nie ma to nic wspólnego z PATHs.
— gertvdijk

1
W porządku. To wszystko wyjaśnia. Wiem, że wracam na ścieżki, ale chcę tylko zrozumieć różnicę między nimi. W przypadku ścieżki musimy jawnie określić lokalizację, ale w tym przypadku po prostu sym linki, aby po wpisaniu java najpierw szuka / etc / alternatives. Czy też mylę się przy przyjmowaniu tego założenia?
— Programista Android
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.