Установка определенной версии glibc в debian / apt

4218
Matthias Gerstner

Пользователь моего программного обеспечения использует Debian wheezy. Программное обеспечение создало дамп ядра, который я хочу проанализировать. Однако, чтобы это работало, мне нужны правильные версии системных библиотек низкого уровня, особенно glibc.

Поэтому я установил версию Debian, наиболее близкую к версии для пользователей: Debian wheezy 7.4. Теперь у меня есть:

libc6:amd64 2.13-38+deb7u1 amd64 Embedded GNU C Library: Shared libraries

apt-get предлагает мне обновление до версии 2.13-38+deb7u6. Однако мне нужна версия 2.13-38+deb7u4(из которой сгенерирован дамп ядра).

Какой предполагаемый способ установить именно эту версию libc?

0

2 ответа на вопрос

0
wurtel

I wouldn't install it, but unpack it in some work directory and refer to it via LD_LIBRARY_PATH. Downgrading your libc6 package can be quite problematic.

Your customer should be able to supply you with their libc6 version. It might, however, be advisable to use the libc6-dbg package which includes debug symbols. Unfortunately the 7u4 version is an older one and not available anymore.

В крайнем случае, это было бы возможно, конечно. Однако это требует взаимодействия с пользователем. Мои пользователи не обязательно подходят или хотят устанавливать символы отладки. Указание им прислать мне свои библиотеки значительно усложняет процесс отладки. Может быть, они не могут даже установить правильные символы отладки без обновления самой libc, таким образом снова теряя правильные библиотеки ... Matthias Gerstner 9 лет назад 0
Я не имел в виду, что пользователям придется устанавливать отладочные версии, если вы можете получить ту же версию libc6, что и у вашего пользователя, * с * символами отладки, тогда это должно работать, поскольку они представляют собой ту же библиотеку, где одна упакован до, а другой после удаления символов. wurtel 9 лет назад 0
Хорошо, но где мне взять именно тот двоичный файл libc с символами отладки, если не где-нибудь из Debian. До сих пор я не нашел ничего из архива пакетов или чего-то еще. Matthias Gerstner 9 лет назад 0
Как я уже сказал, это более старая версия, и не каждая существующая версия сохраняется. Часть `u` указывает, что это для точечного обновления. К сожалению, вы и ваш клиент не обновляетесь достаточно регулярно :-) wurtel 9 лет назад 0
Так что это возвращает меня к началу вопроса. Потому что, если я не получаю подходящую двоичную версию libc, я не могу надежно проанализировать дамп ядра. К сожалению, я не могу повлиять на политику обновления моих клиентов или на то, какие дистрибутивы Linux они используют. Оказывается, Debian - не лучший выбор, если я хочу проанализировать свои дампы ядра. Matthias Gerstner 9 лет назад 0
Как правило, мне не нужна соответствующая версия совместно используемой библиотеки для запуска `gdb`, если я не подозреваю, что проблема находится внутри одной из совместно используемой библиотеки. Опять же, мои программы не выгружают ядро, когда они готовы к выпуску :-P wurtel 9 лет назад 0
0
Matthias Gerstner

It turns out I was just not familiar enough with apt-get. I managed to install the necessary glibc version by issuing the following command:

apt-get install libc-bin=2.13-38+deb7u4 libc6=2.13-38+deb7u4

I even downgraded it and everything works okay. Core dump analysis works now.

Похожие вопросы