How to install latest gcc on Debian
데비안 안정판은 하나의 gcc 버전을 유지하므로, 다른 버전의 gcc를 설치하고 싶으면, 로컬에서 패키징을 시도해야 합니다.
먼저, 시드에 있는 gcc-11, gcc-12를 가져와서 컴파일합니다.
현재 안정판, 11, bullseye에서 컴파일된 패키지는 아래에서 구할 수 있습니다: 이름에 상관없이 전부 bullseye에서 컴파일된 패키지들입니다!!
- https://dawoum.duckdns.org/debian/pool/bookworm-dawoum/
- https://dawoum.duckdns.org/debian/pool/bullseye-dawoum/
그런-다음, 현재 시스템에 설치된 gcc에 대한 정보를 얻습니다:
- dpkg -l | grep gcc-10
- dpkg -l | grep 10.2.1-6
관련된 모든 패키지의 정보를 얻으면, 그것을 기반으로 로컬에서 패키징된 gcc-12로 덮어쓰기를 시도합니다:
- dpkg -i cpp-12_12-20220428-1_amd64.deb ...
- 46개의 패키지를 설치할 수 있습니다.
그런-다음 다시 한번 gcc-10의 목록을 얻습니다:
- dpkg -l | grep 10.2.1-6
남아있는 패키지를 gcc-11의 패키지로 덮어쓰기를 진행합니다:
- dpkg -i cpp-11_11.3.0-1_amd64.deb ...
- 20개의 패키지를 설치할 수 있습니다.
- 16개의 gcc-10 관련 패키지가 남습니다.
이제 남은 gcc-10을 이전의 방법으로 찾아서 업그레이드하십시오.
이제 아래와 같이 설정함으로써 gcc 버전을 선택적으로 사용할 수 있습니다:
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 --slave /usr/bin/g++ g++ /usr/bin/g++-12
- sudo update-alternatives --config gcc
- gcc -v
이전 버전으로 되돌리기 위해서는 다음과 같은 진행할 수 있습니다: 이 과정은 테스트되지 않았습니다.
- sudo apt purge gcc-11 g++-11 sudo gcc-12 g++-12
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- sudo update-alternatives --config gcc
- gcc -v
GCC-10 upgrade
만약, 데비안 bullseye에서 최신 버전의 gcc-10로 업그레이드하고 싶을 때에는 다음 패키지를 이용할 수 있습니다. 물론, 이것으로 업그레이드 후에, gcc-11, gcc-12를 동시에 설치할 수도 있습니다:
이 패키지를 이용함에 있어 일부 의존성과 관련된 문제가 발생할 수 있습니다. 예를 들어, 기존 gcc-10 버전 이하로 의존성이 걸려 있으면, 이 패키지로 인해 다른 일부 프로그램이 설치되지 않을 수 있습니다.
물론 해당 패키지를 지우고 패키지를 원하는 패키지를 설치하고 이 패키지를 다시 덮어쓸 수 있지만, 지우는 과정에서 의존성으로 인해 어떤 패키지까지 제거될지는 확인이 필요합니다.