Как узнать версию glibc в Linux: простые команды для проверки
-
Знаете ли вы, какая версия glibc стоит в вашей Linux-системе? Это важная деталь, особенно при компиляции программ из исходников или запуске бинарников, требующих конкретной библиотеки. Без правильной версии многие приложения просто не запустятся.
В этой статье разберем два основных способа проверки версии glibc. Они работают на большинстве дистрибутивов, от Ubuntu до CentOS. Вы узнаете пути к библиотеке для разных архитектур и поймете, как интерпретировать вывод. Это поможет избежать ошибок вроде “wrong glibc version” и сэкономит часы поиска.
Быстрый способ: команда ldd --version
Команда ldd --version - это самый простой метод узнать версию glibc. Она выводит информацию о динамическом линковщике, который всегда привязан к glibc. Запускается из терминала без прав root и дает точный ответ за секунду.
Этот подход универсален для всех Linux-дистрибутивов. Например, в Ubuntu или Debian вывод покажет версию вроде 2.31, а в старых Red Hat - 2.17. Если программа требует glibc 2.28, а у вас 2.19, сразу поймете проблему. Не забудьте: ldd доступна в пакете libc-bin, но обычно уже установлена.
Вот как это выглядит:
- Основная команда:
ldd --version- Вывод: строка с версией, например, “ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35”.
- Преимущества: Мгновенный результат, не зависит от пути к библиотеке.
- Нюанс: В редких случаях показывает eglibc (вариант для embedded-систем), но совместим с glibc.
Дистрибутив Пример вывода Ubuntu 22.04 ldd (Ubuntu GLIBC 2.35-0ubuntu3.4) 2.35 Debian 11 ldd (Debian GLIBC 2.31-13+deb11u8) 2.31 CentOS 7 ldd (GNU libc) 2.17 Детальный способ: запуск libc.so.6 напрямую
Второй метод - прямой вызов библиотеки libc.so.6 как исполняемого файла. Это дает полную информацию: версию, расширения, дату сборки и даже компилятор. Полезно, когда нужно проверить символы или совместимость с конкретными фичами glibc.
Путь к файлу меняется в зависимости от дистрибутива и архитектуры (x86_64 или i386). В 64-битных системах на Debian это /lib/x86_64-linux-gnu/libc.so.6, на Red Hat - /lib64/libc.so.6. Если не знаете путь, используйте
find /lib -name libc.so.6. Вывод включает список поддерживаемых ABI и RTLD-фичи.- Для 64-бит Debian/Ubuntu:
/lib/x86_64-linux-gnu/libc.so.6- Пример: “GNU C Library (Debian GLIBC 2.31-13+deb11u4) stable release version 2.31.”
- Для 32-бит Debian/Ubuntu:
/lib/i386-linux-gnu/libc.so.6 - Для 64-бит Red Hat/CentOS:
/lib64/libc.so.6 - Для 32-бит Red Hat/CentOS:
/lib/libc.so.6 - Важно: В multiarch-системах может быть несколько версий - проверяйте все.
Архитектура Debian/Ubuntu Red Hat/CentOS 64-bit /lib/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6 32-bit /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6 Дополнительные команды для продвинутых случаев
Иногда стандартных способов мало - например, в контейнерах или chroot. Здесь помогут getconf GNU_LIBC_VERSION или проверка пакетов. getconf читает конфиг системы и выдает чистую версию без лишнего.
Эти методы полезны в скриптах или при отладке. В RPM-дистрибутивах вроде Fedora смотрите
rpm -q glibc, в DEB -dpkg -l | grep libc6. Если собираете LFS (Linux From Scratch), версия критична для kernel headers.getconf GNU_LIBC_VERSION- короткий вывод версии.rpm -q glibc(Red Hat/Fedora) - показывает пакет и версию.dpkg -l | grep libc6(Debian/Ubuntu) - список libc-пакетов.ls -l /lib/libc-*- видит все связанные файлы.
Совет: В Docker проверяйте внутри контейнера, так как хост-система может отличаться.
Почему версия glibc имеет значение всегда
Glibc - сердце Linux, реализует стандарт C и POSIX API. Устаревшая версия блокирует новые программы, а слишком новая - старый софт. В 2026 году актуальны 2.38+, но legacy-системы держат 2.17.
Мы разобрали основные способы, но есть нюансы: musl libc вместо glibc или статическая компиляция. Стоит изучить changelog glibc на официальном сайте, чтобы понимать фичи по версиям. Если копать глубже - смотрите strings /lib/libc.so.6 | grep GLIBC.
- Основная команда:
© 2024 - 2026 ExLends, Inc. Все права защищены.