엔터프라이즈급 Linux 운영 체제에서는
- SLES 11.4는 glibc 2.11을 사용합니다.
- SLES 12.3 glibc 2.19를 사용하는 것 같습니다.
- RHEL 6.10은 glibc 2.12를 사용합니다.
- RHEL 7.6은 glibc 2.17을 사용합니다.
- glibc의 소스 코드는 현재 2.29입니다.
- 얼마 전 glibc 2.14가 설치된 Linux 시스템에서 실행 가능한 코드를 받았지만 SLES 11에서는 실행할 수 없었습니다.
모든 내용을 살펴보면 glibc는 시스템에서 수동으로 업데이트할 수 없는 것으로 보입니다. 버전을 업그레이드하는 유일한 방법은 완전히 업데이트된 Linux 운영 체제 버전으로 이동하는 것입니다. 이게 진짜야?
이전 버전과의 호환성은 항상 있었지만 이후 버전과의 호환성은 없었기 때문에...
저는 최신 RHEL 7.6 및 glibc 2.17을 사용하고 있습니다. 누군가 현재 SLES 12 및 glibc 2.19를 사용하고 있고 실행 가능한 코드를 제공하는 경우 어떻게 해야 합니까? 가까운 장래에 더 높은 버전의 glibc가 포함된 일부 Linux를 사용하면 동일한 문제가 발생합니까? 수신자가 이전 glibc를 가지고 있거나 제공자가 최신 glibc를 가지고 있는지 여부에 관계없이 이 문제를 해결할 수 있는 방법이 있습니까? 나는 또한 문제의 큰 부분이 glibc 웹사이트의 다음 문장이라는 것을 발견했습니다.GNU C 라이브러리는 6개월마다 출시됩니다..
답변1
라이브러리에는 버전이 지정된 기호가 있습니다. 새 코드가 버전 기호 중 하나에 도달하고 해당 버전이 libc의 다른 버전보다 최신이면 실행할 수 없습니다.
정적으로 구축할 수 있나요?
답변2
배포판은 필요한 안정성에 따라 이전/최신 glibc 버전과 함께 제공됩니다.
모든 내용을 살펴보면 glibc는 시스템에서 수동으로 업데이트할 수 없는 것으로 보입니다. 버전을 업그레이드하는 유일한 방법은 완전히 업데이트된 Linux 운영 체제 버전으로 이동하는 것입니다. 이게 진짜야?
습관. glibc는 패키지 관리자가 glibc의 새 버전을 발견할 때마다 업데이트됩니다. 기본 파일은 입니다 /lib/libc.so.6
. 이는 프로그램이 링크되는 동적 라이브러리입니다(C 표준 라이브러리에 포함된 C 함수를 실행할 수 있음).
필요한 버전의 glib를 컴파일 libc.so.6
하고 lib
바이너리가 실행될 때 오류 메시지를 표시할 수 있고 최신 버전의 glibc가 아직 배포 패키지 테스트 관리자에서 릴리스되지 않았기 때문에 권장되지 않습니다. 따라서 시스템이 불안정할 것으로 예상할 수 있습니다.