`업데이트 대안 '은 정확히 무엇을합니까?


99

update-alternatives사용 된 명령은 무엇입니까 ?

이 예제를 보자 :

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

무엇을합니까? 경로에 jdk를 추가하는 것과 어떻게 다른가요?

명령을 실행했다고 가정 해 봅시다. 원래 상태로 되돌리려면 어떻게해야합니까?


2
당신은 또한 사용할 수 있습니다 sudo update-alternatives --config javajavacjavaws설치 버전을 선택할 수 있습니다.
Shayan

답변:


73

/etc/alternatives이 목적으로 프로그램을 가리 키도록 링크를 업데이트합니다 . 예, 같은 많이있다 x-www-browser, editor브라우저 또는 환경 설정의 편집자로 연결됩니다, 등. 일부 스크립트 또는 시스템 도구는 파일을 수동으로 편집하기를 원할 수 있으며 (예 : 구성 충돌 dpkg) 대안을 찾아 선택 편집기를 제공합니다. 의 경우 javaJava 런타임 환경 (Oracle, OpenJRE 등)입니다.

링크 /etc/alternatives는 기호 링크 일뿐입니다. 예를 들어서 볼 수 있습니다.

ls -l /etc/alternatives

또한 일반 /usr/bin바이너리도 심볼릭 링크입니다. 예 :

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

따라서 PATH수정할 필요 가 없습니다 . 기호 링크 만 사용합니다.


즉, 하나의 명령을 입력하면 선택하라는 메시지가 표시됩니다. 이것이 바로 경로를 설정하는 것보다 더 큰 이점입니다. 또한 다른 공급 업체가 설치되어 있다고 가정 해 보겠습니다. 두 공급 업체를 모두 가리 키도록 Java를 어떻게 업데이트합니까?
개발자 Android

당신이 묘사 한 것처럼 둘 다 가리킬 수는 없습니다. 그것의 전체 목적은 주어진 예제에서와 같이 엔트리의 구현에 대한 단일 포인터를 갖는 것입니다. 질문없이 그리고 모든 후보자가 작동해야합니다-관리자의 선호가되어야합니다. 그리고 다시 : 그것은 PATHs 와 관련이 없습니다 .
gertvdijk

1
괜찮아. 그것은 일을 정리합니다. 나는 내가 길로 돌아오고 있다는 것을 알고 있지만 나는 단지 그들 사이의 차이점을 이해하고 싶습니다. 경로의 경우 위치를 명시 적으로 지정해야하지만이 경우 sym 링크를 사용하므로 java를 입력하면 / etc / alternatives를 먼저 검색합니다. 아니면이 가정을 잘못 하는가?
개발자 Android
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.