<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Как узнать версию glibc в Linux: простые команды для проверки]]></title><description><![CDATA[<p dir="auto">Знаете ли вы, какая <strong>версия glibc</strong> стоит в вашей Linux-системе? Это важная деталь, особенно при компиляции программ из исходников или запуске бинарников, требующих конкретной библиотеки. Без правильной версии многие приложения просто не запустятся.</p>
<p dir="auto">В этой статье разберем <strong>два основных способа</strong> проверки версии glibc. Они работают на большинстве дистрибутивов, от Ubuntu до CentOS. Вы узнаете пути к библиотеке для разных архитектур и поймете, как интерпретировать вывод. Это поможет избежать ошибок вроде “wrong glibc version” и сэкономит часы поиска.</p>
<h2>Быстрый способ: команда ldd --version</h2>
<p dir="auto">Команда <strong>ldd --version</strong> - это самый простой метод узнать версию glibc. Она выводит информацию о динамическом линковщике, который всегда привязан к glibc. Запускается из терминала без прав root и дает точный ответ за секунду.</p>
<p dir="auto">Этот подход универсален для всех Linux-дистрибутивов. Например, в Ubuntu или Debian вывод покажет версию вроде 2.31, а в старых Red Hat - 2.17. Если программа требует glibc 2.28, а у вас 2.19, сразу поймете проблему. Не забудьте: ldd доступна в пакете libc-bin, но обычно уже установлена.</p>
<p dir="auto">Вот как это выглядит:</p>
<ul>
<li><strong>Основная команда:</strong> <code>ldd --version</code>
<ul>
<li>Вывод: строка с версией, например, “ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35”.</li>
</ul>
</li>
<li><strong>Преимущества:</strong> Мгновенный результат, не зависит от пути к библиотеке.</li>
<li><em>Нюанс:</em> В редких случаях показывает eglibc (вариант для embedded-систем), но совместим с glibc.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Дистрибутив</th>
<th>Пример вывода</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ubuntu 22.04</td>
<td>ldd (Ubuntu GLIBC 2.35-0ubuntu3.4) 2.35</td>
</tr>
<tr>
<td>Debian 11</td>
<td>ldd (Debian GLIBC 2.31-13+deb11u8) 2.31</td>
</tr>
<tr>
<td>CentOS 7</td>
<td>ldd (GNU libc) 2.17</td>
</tr>
</tbody>
</table>
<h2>Детальный способ: запуск libc.so.6 напрямую</h2>
<p dir="auto">Второй метод - прямой вызов библиотеки <strong>libc.so.6</strong> как исполняемого файла. Это дает полную информацию: версию, расширения, дату сборки и даже компилятор. Полезно, когда нужно проверить символы или совместимость с конкретными фичами glibc.</p>
<p dir="auto">Путь к файлу меняется в зависимости от дистрибутива и архитектуры (x86_64 или i386). В 64-битных системах на Debian это /lib/x86_64-linux-gnu/libc.so.6, на Red Hat - /lib64/libc.so.6. Если не знаете путь, используйте <code>find /lib -name libc.so.6</code>. Вывод включает список поддерживаемых ABI и RTLD-фичи.</p>
<ul>
<li><strong>Для 64-бит Debian/Ubuntu:</strong> <code>/lib/x86_64-linux-gnu/libc.so.6</code>
<ul>
<li>Пример: “GNU C Library (Debian GLIBC 2.31-13+deb11u4) stable release version 2.31.”</li>
</ul>
</li>
<li><strong>Для 32-бит Debian/Ubuntu:</strong> <code>/lib/i386-linux-gnu/libc.so.6</code></li>
<li><strong>Для 64-бит Red Hat/CentOS:</strong> <code>/lib64/libc.so.6</code></li>
<li><strong>Для 32-бит Red Hat/CentOS:</strong> <code>/lib/libc.so.6</code></li>
<li><em>Важно:</em> В multiarch-системах может быть несколько версий - проверяйте все.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Архитектура</th>
<th>Debian/Ubuntu</th>
<th>Red Hat/CentOS</th>
</tr>
</thead>
<tbody>
<tr>
<td>64-bit</td>
<td>/lib/x86_64-linux-gnu/libc.so.6</td>
<td>/lib64/libc.so.6</td>
</tr>
<tr>
<td>32-bit</td>
<td>/lib/i386-linux-gnu/libc.so.6</td>
<td>/lib/libc.so.6</td>
</tr>
</tbody>
</table>
<h2>Дополнительные команды для продвинутых случаев</h2>
<p dir="auto">Иногда стандартных способов мало - например, в контейнерах или chroot. Здесь помогут <strong>getconf GNU_LIBC_VERSION</strong> или проверка пакетов. getconf читает конфиг системы и выдает чистую версию без лишнего.</p>
<p dir="auto">Эти методы полезны в скриптах или при отладке. В RPM-дистрибутивах вроде Fedora смотрите <code>rpm -q glibc</code>, в DEB - <code>dpkg -l | grep libc6</code>. Если собираете LFS (Linux From Scratch), версия критична для kernel headers.</p>
<ul>
<li><code>getconf GNU_LIBC_VERSION</code> - короткий вывод версии.</li>
<li><code>rpm -q glibc</code> (Red Hat/Fedora) - показывает пакет и версию.</li>
<li><code>dpkg -l | grep libc6</code> (Debian/Ubuntu) - список libc-пакетов.</li>
<li><code>ls -l /lib/libc-*</code> - видит все связанные файлы.</li>
</ul>
<p dir="auto"><em>Совет:</em> В Docker проверяйте внутри контейнера, так как хост-система может отличаться.</p>
<h2>Почему версия glibc имеет значение всегда</h2>
<p dir="auto"><strong>Glibc</strong> - сердце Linux, реализует стандарт C и POSIX API. Устаревшая версия блокирует новые программы, а слишком новая - старый софт. В 2026 году актуальны 2.38+, но legacy-системы держат 2.17.</p>
<p dir="auto">Мы разобрали основные способы, но есть нюансы: musl libc вместо glibc или статическая компиляция. Стоит изучить changelog glibc на официальном сайте, чтобы понимать фичи по версиям. Если копать глубже - смотрите strings /lib/libc.so.6 | grep GLIBC.</p>
]]></description><link>https://forum.exlends.ru/topic/921/kak-uznat-versiyu-glibc-v-linux-prostye-komandy-dlya-proverki</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 09:00:57 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/921.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Mar 2026 16:06:36 GMT</pubDate><ttl>60</ttl></channel></rss>