이 글은 우분투, 리눅스 박스에서 여러버전의 도구를 관리할 수 있는 update-alternatives
를 다루고 있다.
update-alternative
update-alternative
유틸리티로 리눅스 기본 제공 개발 환경의 gcc, cross compiler용 gcc 등 여러 버전의 gcc를 사용할 수 있게 구성할 수 있다.
이들 버전의 환경을 교체해서 사용하기를 원한다. update-alternative
도구를 사용할 수 있다.
update-alternative 사용
여러 버전의 gcc를 update-alternative
를 사용해서 선택적으로 사용할 수 있다. gcc
로 등록된 현재 버전 목록을 질의 한다.
1 | $ update-alternatives --query gcc |
등록
여기서 사용하는 여러 gcc 버전들을 설치한 후에 다음과 같은 명령어로 등록을 할 수 있다.
1 | update-alternatives --install <link> <name> <path> <priority> |
- 실행파일 이름으로 /etc/alternatives/
을 가리킨다. (예: /usr/bin/pager) 해당 링크 그룹의 대표 이름으로, 여러 가지 버전의 패키지들을 대표하는 이름으로 보면 될 것 같다.(예: pager) alternatives 로 실제 연결할 실행파일 이름으로, 시스템에 설치한 패키지의 실행파일 이름이다.(예: /usr/bin/less) automatic 모드에서 어떤 것을 자동으로 선택해서 사용할지 결정할 때 사용되는 우선순위로, 높은 수가 더 높은 우선순위이다.
gcc 등록
Ubuntu 14.04 최신 버전에 gcc4.7, 4.8 를 사용하려고 설치했다고 가정한다.
1 | sudo apt-get update |
그리고 gcc 그룹에 4.8를 우선도가 높게 50으로 준다.
1 | sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 |
여기서 gcc를 master로 g++을 slave로 준비했다. --slave
옵션은 --install
로 지정한 master에 종속해서 여러개의 슬레이브를 마스터에 추가할 수 있고, 마스터의 링크가 바뀌면 슬레이브도 함께 바뀐다.
두번째 버전은 gcc-4.7 버전을 우선도가 40 정도로 하자.
1 | sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 |