Страница 1 из 2
version 'GLIBC_2.34' not found [решено]

Добавлено:
13.03.2025 19:50:27
lordgray
Здравствуйте! Написал программу под Windows, все работает замечательно. Но тут государство подарило 140 компов с AstraLinux 1.7 и всяким лицензионным софтом. Решил скомпилить версию под линукс (компилил на Debian 12, т.к. на Астру Лазарь не стал). При запуске на Астре, получаю "version 'GLIBC_2.34' not found". Библиотека есть, конечно, но версии 2.24. Обновление ОС подняло версию до 2.28, что не решило проблему. Попытка вручную установить нужную версию пакета libc6, чуть не уложила операционку. Да и зависимостей там столько, что вручную решить - чёкнуться можно, а в репозиториях все старое. Поиски в интернете почти ничего не дали, кроме идеи, скомпилить проект на Линуксе с версией libc6 пониже. Не знаю, поможет, или нет? Качнул и поставил Debian 10, в нем поже версия 2.28. Так, блин, Лазарус на него не становится, видите ли, не известный метод сжатия DEB пакета. За 3 дня поисков, проб, и танцев с бубном, замахался так, что руки опустились, пробовать дальше. Сам я не спец, и даже, не средний пользователь Линукса. Есть какое то простое решение проблемы?
Миграцию на Астру 1.8 или вообще другой дистрибутив, не предлагать, т.к. предустановлен лицензионный софт, который потеряется.
Может при компиляции, какие то параметры можно указать, или еще чего? Спасайте!
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 20:07:54
RRYTY
Астра протухла еще при рождении, это необновляемый тупик.
Единственно абсолютно безглючный боевой способ поддержки кроссплатформенного софта - поставка в предкомпилированном виде для каждой ОС. Каждую программу при обновлении версии собираем под нужной ОС в виртуальных машинах, там же тесты. Советую делать так же. Нужно под Астру - собирайте под Астрой, именно под той, в которой будет работать (орлы, всякие воронежи и смоленски имеют кардинальные отличия по степени гниения, самый тухлый - смоленск). Лазарус там тоже тухлый - 2.4, это придется учесть, у проектов лазаруса есть несовместимость сверху вниз. Нужно под Росу - берите именно ту сборку, которая будет у заказчика. И так далее, виндов тоже касается.
Астра чудно переносится с ПК на ПК (включая виртуальные различных гипервизоров) при помощи rescuecd и fsarchiver.
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 20:51:56
lordgray
Изначально так и хотел, собрать в Астре. Но при попытке поставить Лазаря, вылезло, примерно 20+ зависимостей, которые не устраняются из репозитория. Выискивать каждый пакет НУЖНОЙ версии, качать, и ставить вручную, чтоб полюбоваться на еще пачку других зависимостей? Сомнительное удовольствие.
Посетила мысль: если взять нужную libc6, и положить рядом с выполнимым файлом, чтоб не ставить в систему, прокатит?
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 21:10:27
RRYTY
lordgray писал(а):Но при попытке поставить Лазаря, вылезло, примерно 20+ зависимостей, которые не устраняются из репозитория
Нужно брать именно ту версию, которую предлагает официальный репозиторий. То есть, 2.4. Репозиторий сбалансирован именно с ней.
lordgray писал(а):Выискивать каждый пакет НУЖНОЙ версии, качать, и ставить вручную
Как вы уже догадались, это приведет к
lordgray писал(а):еще пачку других зависимостей
То есть, к созданию собственной ветки репозитория.

lordgray писал(а):Посетила мысль: если взять нужную libc6, и положить рядом с выполнимым файлом, чтоб не ставить в систему, прокатит?
libc6 не в пустоте висит. Такие "простые" решения с системными библиотеками чреваты неявными и тяжкими последствиями.
Добавлено спустя 5 минут 12 секунд:lordgray писал(а):Изначально так и хотел, собрать в Астре.
Это единственный путь, гарантирующий работоспособность. Все пакеты должны быть "родными", как я уже упомянул - сбалансированными по версиям и зависимостям.
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 22:18:32
lordgray
Подкинул к выполнимому файлу, libc6, он её не увидел.
В репозиториях, Лазарь 2.0. Это жо.. какая-то. У меня не один проект, и пишу в основном под Винду. Это что ж получается: дописал что-то под виндой на Лазаре 3.8, и потом, перекидывай в Линукс, и модифицируй до Лазаря 2.0? И так каждый раз, когда что-то допишешь, или исправишь какую-то ошибку? Как увлекательно! О, или 2 Лазаря иметь: 2.0 для этого проекта, и 3.8 для остальных. Я в шоке.
Ладно, приду в себя, попробую разные версии Лазаря поставить в Астру. Может станет хоть что-то, новее 2.0. А там, может еще кто что подскажет.
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 22:40:56
RRYTY
lordgray писал(а):Может станет хоть что-то, новее 2.0.
Если это о Астра-смоленск или воронеж, то проконсультируйтесь с безопасниками. Самостоятельная установка пакетов, за которые во ФСТЭК еще не отстегнули, обычно не приветствуется. Удачи.
Re: version 'GLIBC_2.34' not found

Добавлено:
13.03.2025 23:41:17
lordgray
В "О системе", написано: "Astra Linux Special Edition. Уровень защищенности: базовый". О всяких городах - ни слова. Так что, что это за редакция такая - не знаю.
Спасибо, буду пробовать!
Re: version 'GLIBC_2.34' not found

Добавлено:
14.03.2025 00:07:18
Seenkao
lordgray писал(а):Миграцию на Астру 1.8 или вообще другой дистрибутив, не предлагать, т.к. предустановлен лицензионный софт, который потеряется.
не надо мигрировать. Установи виртуалку, там установи Астру. В астре установи FPC/Lazarus, собери приложение.
Re: version 'GLIBC_2.34' not found

Добавлено:
14.03.2025 00:48:37
xchgeaxeax
Заходите
вот сюда и ищите свою версию.
Судя по всему у вас версия 1.7 т.е. ядро линукс версии 5.4. Сейчас актуальной версией ядра линукс является уже 6.12, а (для calculate linux) стабильной 6.6.
Подробнее про версию можете узнать по команде
# dmesg | grep Linux
или
# lsb_release -a
или
# cat /etc/astra_version
P.S. # в начале команды не вводится. Она показывает, что команду надо выполнять от пользователя с правами root. Если для команды достаточно прав обычного пользователя перед командой ставится $.
Re: version 'GLIBC_2.34' not found

Добавлено:
14.03.2025 01:20:50
lordgray
Так, сдвинулось дело с мертвой точки. Перепробовал несколько Лазарей, установился 3.4.0. Все последующие, используют новый метод архивации.
Один нюанс: ставить надо пакеты только через dpkg, т.к. графический менеджер, ругается на конфликты с пакетами в репозитории. Зачем он туда смотрит, и какое его дело, не понятно.
Так же пришлось доставить пакет libgtk2.0-dev, он хоть в репозитории был, и за собой, автоматом, потянул еще 88 пакетов.
Лазарь запустился, при установке сторонних компонентов, нормально пересобрался и запустился, что дает надежду, что и мой проект стартанет. Но это уже завтра.
Re: version 'GLIBC_2.34' not found

Добавлено:
14.03.2025 01:37:09
Seenkao
FPC/Lazarus должен быть по умолчанию в пакетах.
Установи.
Потом установи нужный тебе FPC/Lazarus используя FPCUPDeluxe.
Можешь удалять FPC/Lazarus который ставил из пакетов.
Re: version 'GLIBC_2.34' not found

Добавлено:
14.03.2025 02:11:39
RRYTY
lordgray писал(а):Лазарь запустился, при установке сторонних компонентов, нормально пересобрался и запустился, что дает надежду, что и мой проект стартанет.
Система обновилась до требуемого уровня по зависимостям. Скомпилированное приложение для запуска потребует такого же обновления.
lordgray писал(а):графический менеджер, ругается на конфликты с пакетами в репозитории
Потому что подключены разные репозитории, несбалансированные между собой. В одном требуются системные компоненты, недопустимые в другом. Полностью работоспособная система конфликтов иметь не должна.
Добавлено спустя 22 минуты 45 секунд:lordgray писал(а): ставить надо пакеты только через dpkg
dpkg не проверяет зависимости других установленных пакетов от обновляемых/устанавливаемых. Этот способ еще не вбивание ногами, но уже близко к тому (dpkg можно вообще заставить не обращать внимание почти на все). Графический, более чуткий к общему состоянию системы, чем dpkg, - qapt-deb-installer.
Re: version 'GLIBC_2.34' not found

Добавлено:
17.03.2025 11:57:49
v-t-l
Re: version 'GLIBC_2.34' not found

Добавлено:
18.03.2025 02:56:25
Attid
гооворят еще так можно сборочный цех собрать -
https://delphius.github.io/oldglibcно я бы так на вирталке извращался
Re: version 'GLIBC_2.34' not found [решено]

Добавлено:
18.03.2025 23:39:49
lordgray
Итого:
на астру 1.7.6 стал, относительно легко, лазарь 3.4. Исходники проекта с версии 3.6 открылись без проблем и каких либо сообщений. Долго мучался с Firebird 5, и подключением к базе, но ветка не об этом. Как все с ним решил, проект запустился. На данном этапе, мне этого достаточно.
Хотя, как думающий человек, мне не понятно, какая разница, на каком дистрибутиве собирать бинарник? Вот ставил я лазаря, вполне свежего, а Firebird вообще, самый новый, и никто из них не ругнулся на версию libc6. Я сомневаюсь, что их на "старье" компилировали. Опять же, что меняется в исходниках, от того, на каком дистрибутиве и с какими библиотеками я компилю? Если в libc6 v2.34 добавили какие-то новые функции, или поменялись параметры вызова, то какая разница, что я перекомпилю на версии 2.28? Что, функции уже не нужны будут? Или пофиг на новый набор/порядок параметров функций? Нет же. Тогда что меняется? Единственное, что подозреваю, так это условную компиляцию. Я не большой знаток ее, но не помню там возможностей проверки версии какой-то библиотеки. Или так: вот компилил я свой проект на Win7, и ему это не мешает работать и на Win10, Win11, и не требует он gdi32 или kernel32 из под семерки. Тут же, всё как то... Ладно, это так, мысли в слух.
Честно, не понял, что это такое, и зачем нужно.
вот это интересней. Пока решил, но буду иметь ввиду, может, когда и пригодится.
Всем спасибо за помощь!