alternatives 명령어 알아보기
alternatives (cf, update-alternatives)는 심볼릭 링크를 생성, 제거, 관리, 조회할 수 있는 기능을 제공하는 GNU 라이센스의 커맨드라인 툴. 즉, 심볼릭 링크를 통해서 특정 커맨드에 대해 디폴트 버전 혹은 경로를 정의할 수 있다. 다만, Debian 계열의 리눅스에는 update-alternatives 명령어만 제공 (원래 Debian 의 perl 스크립트였던 update-alternatives 를 Redhat 에서 perl 의존성을 없애기 위해 C 로 재구현한 것이 alternatives 라고 함)되고, Redhat 계열의 리눅스 명령과 제공하는 기능에는 다소 차이가 있지만, 이번에는 공통적인 기능과 옵션에 대해서만 정리하기로 하였다. 추가로, 예제들은 Redhat 기준으로 정리하였다.
이해를 쉽게하기 위해, 각각의 기능을 설명할 때, 메이븐을 시스템에 설치한 뒤에 심볼릭 링크로 연결하는 방법을 정리하도록 한다. 때문에 메이븐이 /usr/lib/apache-maven-* 경로에 설치되어 있다고 가정한다. 물론, 메이븐 이외의 다른 응용도 충분히 가능하다.
심볼릭 링크 생성하기 (–install)
--install 액션을 통해 심볼릭 링크를 생성할 수 있다. Redhat 기준으로 alternatives 는 기본적으로 /etc/alternatives/<name> 의 경로에 심볼릭 링크가 생성되고, mode, priority, link, path 에 대한 정보를 /var/lib/alternatives/<name> 의 경로에 저장 한다. 심볼릭 링크가 처음 생성되는 경우에는 <link>의 경로에 /etc/alternatives/<name>에 대한 심볼릭 링크가 생성된다. (<link>->/etc/alternatives/<name>-><path>)
--slave 옵션은 위의 마스터 심볼릭 링크에 부수적인 명령어들도 같이 관리할 때 사용한다. 예를 들어, java 에 명령에 대한 심볼릭 링크를 생성할 때, javac, javadoc 등의 부가적인 명령에 대해서도 같이 관리할 수 있다. 때문에 --slave 옵션은 여러번 정의할 수 있다.
| |
| |
PS. alternatives에서 관리하는 심볼릭 링크와 메타 데이터의 경로를 변경하고자 하는 경우, --altdir <directory>, --admindir <directory> 명령 옵션을 활용하면 된다.
| |
예를 들어, Java 를 등록할 때 아래와 같이 연관된 명령어들을 한 번에 묶어둘 수 있다.
| |
심볼릭 링크 제거하기 (–remove)
--remove 액션을 통해 생성한 심볼릭 링크를 제거할 수 있다. 자세히는 alternatives 의 메타 데이터에서 제거하게 되며, <name>에 해당하는 링크 그룹 내에 연결 가능한 심볼릭 링크가 없다면, /etc/alternatives/<name>의 심볼릭 링크와 /var/lib/alternatives/<name> 도 같이 소멸. 만약에 다른 대안이 있다면, alternatives 는 자동으로 해당 링크로 업데이트 한다.
| |
| |
자동 모드 설정하기 (–auto)
--auto 액션은 alternatives 에 등록된 심볼릭 링크를 링크 그룹 내에서 자동으로 선택하도록 설정. <priority>가 가장 높은 값으로 설정된 링크를 우선적으로 선택하며, 자동으로 선택된 링크를 제거한 경우 다른 대안의 링크로 연결해주도록 되어 있다.
| |
| |
수동 모드 설정하기 (–config)
--config 액션은 alternatives 에 등록된 심볼릭 링크를 링크 그룹 내에서 사용자가 임의로 선택할 수 있는 기능.
| |
| |
심볼릭 링크 그룹 확인하기 (–display)
--display 액션은 alternatives 에 등록된 심볼릭 링크 그룹에 대한 상세 정보를 확인할 수 있다. 마스터/슬레이브 심볼릭 링크에 연결된 명령어 경로, 현재 사용 중인 모드, 현재 선택된 링크와 가능한 다른 링크에 대한 정보 및 심볼릭 링크의 우선순위 값도 확인할 수 있다.
| |
| |
전체 심볼릭 링크 그룹 확인하기 (–list)
--list 는 alternatives 에 등록된 모든 심볼릭 링크에 대한 정보를 확인할 수 있다.
| |
| |