Embedded System 뿐 아니라, 데스크탑 또는 개발용 머신에서도 여러 버전의 binary를 관리하여 사용하고자 할 때가 있다.

이 경우, 직접 link를 관리하는 것 보다는 update-alternatives를 사용하는 편이 관리도 수월하고 낫다.


update-alternatives는 다음과 같이 사용 가능하다.


~#  update-alternatives --help

Usage: update-alternatives [<option> ...] <command>


Commands:

  --install <link> <name> <path> <priority>

    [--slave <link> <name> <path>] ...

                           add a group of alternatives to the system.

  --remove <name> <path>   remove <path> from the <name> group alternative.

  --remove-all <name>      remove <name> group from the alternatives system.

  --auto <name>            switch the master link <name> to automatic mode.

  --display <name>         display information about the <name> group.


<link> is the symlink pointing to /etc/alternatives/<name>.

  (e.g. /usr/bin/pager)

<name> is the master name for this link group.

  (e.g. pager)

<path> is the location of one of the alternative target files.

  (e.g. /usr/bin/less)

<priority> is an integer; options with higher numbers have higher priority in

  automatic mode.



몇 가지 옵션만 살펴 보면,


--display <name> : 해당 이름의 등록 정보를 보여준다.

--install <link> <name> <path> <priority> : <link>는 alternatives가 대표할 패스와 이름이다.

                <name> /etc/alternatives에 등록되는 그룹 이름이다.

                <path> 이번에 등록되는 실제 패스를 의미한다.

               <priority> 자연수로 표기되는 우선순위이며 클수록 우선순위가 높다.

--remove <name> <path> : 패스를 해당 그룹으로부터 제거한다.

--config <name> : 그룹의 사용 우선순위를 조정한다.


내부 동작은 다음과 같다.


1) --install 옵션을 통해 등록

2) <link>를 생성하고, link의 source를 /etc/alternatives/<name>으로 생성

3) /etc/alternatives/<name> 링크의 source를 등록한 <path>로 생성


즉, <link> -> /etc/alternatives/<name> -> <path> 형태로 링크된다.


상세 내용은 man update-alternatives 참조.


+ Recent posts