■ gcc, g++ 다른 버전 추가 및 패키지 관리


사용 OS : Ubuntu 16.04 LTS


Ubuntu 에서 개발을 진행하다보면, gcc 및 g++ 버전을 변경해야 하는 경우가 자주 발생 하게 됩니다.

특히, 오픈소스를 활용해야 하는 경우에는 공개된 소스가 특정 컴파일 버전을 명시하는 경우가 많고, 버전 의존성 때문에 오류가 생기는 경우가 많다. 그런 경우가 발생 할때 마다 gcc를 다른 버전으로 새로 설치하는 것은 너무나도 번거롭고 힘든일 입니다.


이러한 이슈를 해결하기 위하여 update-alternatives 명령어를 활용하여 gcc 버전을 변경하는 사용하는 것이 좋은 대안이 될 것 같습니다.


Ubuntu 16.04의 gcc 버전은 5.X.X 버전이 default 버전인데, gcc-6 버전을 함께 설치하여 관리하면서 필요에 따라 원하는 버전으로 변경하여 사용하는 방법을 정리해 봅니다. (다른 패키지에도 활용 가능하므로 유용하다.)


- 현재 gcc 버전 확인


gcc --version


- gcc-6 버전 설치를 위한 ppa repository 추가


sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update


- gcc 및 g++ 설치


sudo apt-get install gcc-6 g++-6 gcc-6-multilib g++-6-multilib


위와 같이 진행하면 gcc-6이 설치된다.


- 현재 설치된 여러 버전의 gcc, g++ 확인


// gcc 확인

sudo dpkg -l | grep gcc | awk '{print $2}'


// g++ 확인

sudo dpkg -l | grep g++ | awk '{print $2}'


위의 명령어로 확인해 보면 여러개의 버전이 설치 되어 있음을 확인 할 수 있다.

여러 버전의 gcc 버전을 관리하기 위해 우선 alternatives가 설정 되어 있는지 확인 해본다. (gcc , g++ 모두 방법은 동일하다.)


// gcc

sudo update-alternatives --display gcc


// g++

sudo update-alternatives --display g++


설정된 것이 없을 것이므로 아래와 같이 보일 것이다.



등록된 것이 없으므로 alternatives 에 등록을 진행해 준다. 등록 형식은 아래와 같다.


sudo update-alternatives --install <link> <name> <path> <priority>


인자 값이 의미하는 것을 간략히 정리하면 아래와 같다.


 인자 값

의미 

 link

 실행 파일의 이름으로 /etc/alternatives/을 가리킨다. (예: /usr/bin/gcc)

 name

 해당 링크를 그룹의 대표 이름으로, 여러가지 버전의 패키지들을 대표하는 이름이다. (예: gcc)

 path

 alternatives로 실제 연결할 실행 파일의 이름으로, 시스템에 설치한 패키지 실행 파일 이름이다. (예: /usr/bin/gcc-5)

 priority

 automatic 모드에서 어떤 것을 자동으로 선택해서 사용할지 결정할 때 사용되는 우선 순위로 높은 수가 더 높은 우선순위가 된다. 


- alternatives에 등록


// gcc

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 40


// g++

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40


위의 명령어로 등록시 아래와 같은 응답 결과를 확인할 수 있다. (g++ 도 동일한 형태로 확인함.)



다시 한번 sudo update-alternatives --display gcc 명령어로 확인해 본다. 처음과 다르게 등록된 alternatives를 확인 할 수 있다.



- gcc --version 확인


등록된 alternatives 에 Priority가 높은 gcc-6 버전으로 출력 되는 것을 확인 할 수 있다.



마지막으로 버전을 변경하고 싶은 경우에는 아래의 명령어를 이용하여 변경 한다.


- 버전 변경


// gcc

sudo update-alternatives --config gcc


// g++

sudo update-alternatives --config g++


위 명령어 입력시 아래와 같이 gcc 버전 선택화면이 표시되고 원하는 번호를 입력하면 선택된 버전으로 사용 가능하다.



버전 변경 및 패키지 관리 완료 !!!


■ 참고 : 관련 글 확인



Posted by 빈이아빠 mobile

댓글을 달아 주세요