내 프로젝트에는 최신 G++가 필요하지만 모든 튜토리얼에서는 소스를 다운로드하고 컴파일한 후 "간단히" 설치한 다음 사용하라고 지시합니다. 이것은 재현성이 좋지 않기 때문에 내가 원하지 않는 것입니다.
그러나 데비안의 저장소에는 내가 보관하고 공유할 수 있는 최신 패키지(bullseye, 테스트, 불안정 등)가 있습니다. 이렇게 하면 거의 FrankenDebian을 얻을 수 있다는 것을 알고 있지만 소스 코드나 모호한 저장소를 사용하는 것보다 훨씬 낫습니다(일부 튜토리얼에서는 데비안용 ppa 사용을 권장하기도 합니다...).
나는 또한 Debian Buster의 G++를 계속 사용하고 싶습니다. 왜냐하면 많은 것들이 확실히 그것을 사용하고 다음과 같은 오류를 피할 것이기 때문입니다:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.30' not found (required by /lib/x86_64-linux-gnu/libselinux.so.1)
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
여기서는 확실히 두통을 피할 수 있습니다.
설치 대안 등에 대해서도 들었지만 먼저 올바른 패키지를 설치해야 합니다.
이게 내 문제야: 소스 코드를 따르지 않고 데비안 버스터에 다른 G++를 설치하는 방법은 무엇입니까?
답변1
이것은 현재 가능합니다(그리고 데비안 11이 출시되기 전에 동결되었기 때문에 의심할 여지 없이 남아 있을 것입니다 gcc
) g++
. 예를 들어 Buster 백포트와 Bullseye를 소스에 추가하고 핀을 적절하게 구성해야 합니다.
Package: *
Pin: release n=buster
Pin-Priority: 500
Package: *
Pin: release n=buster-updates
Pin-Priority: 500
Package: *
Pin: release n=buster-backports
Pin-Priority: 110
Package: *
Pin: release n=bullseye
Pin-Priority: 100
그런 다음 또는 에 대한 업그레이드가 gcc-10
필요하지 않은 를 설치할 수 있습니다 . 종속성을 해결하는 데 어려움이 있었지만 잘 관리하여 포함되었습니다(내 테스트에는 22개의 업그레이드 패키지, 대부분 GCC 또는 binutils 패키지).libc6
libstdc++6
apt
aptitude
g++-10
다른 이야기입니다. 업데이트가 필요하며 libstdc++6
업그레이드에는 기본적으로 테스트 업그레이드가 포함됩니다.
말씀하신 대로 이런 상황에도 불구하고회의schroot
결과는 "FrankenDebian"이므로 Debian 테스트 설정 이나 컨테이너 사용 을 고려할 수 있습니다 debian:11
.