How to install latest gcc on Debian

From DawoumWiki, the free Mathematics self-learning

데비안 안정판은 하나의 gcc 버전을 유지하므로, 다른 버전의 gcc를 설치하고 싶으면, 로컬에서 패키징을 시도해야 합니다.

먼저, 시드에 있는 gcc-11, gcc-12를 가져와서 컴파일합니다.

현재 안정판, 11, bullseye에서 컴파일된 패키지는 아래에서 구할 수 있습니다: 이름에 상관없이 전부 bullseye에서 컴파일된 패키지들입니다!!

그런-다음, 현재 시스템에 설치된 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 버전 이하로 의존성이 걸려 있으면, 이 패키지로 인해 다른 일부 프로그램이 설치되지 않을 수 있습니다.

물론 해당 패키지를 지우고 패키지를 원하는 패키지를 설치하고 이 패키지를 다시 덮어쓸 수 있지만, 지우는 과정에서 의존성으로 인해 어떤 패키지까지 제거될지는 확인이 필요합니다.

External Resources