Рейтинг:0

Установите системные библиотеки 20.04 в 21.10

флаг ve

Я столкнулся со странной проблемой. Я разрабатываю приложения Qt/C++. До вчерашнего дня моя и целевая машины работали под управлением Ubuntu 20.04.

Вчера мне пришлось обновить мою машину разработчика до 21.10, чтобы запустить определенное программное обеспечение. К сожалению, это нарушило совместимость моих исполняемых файлов:

./MyProject: /lib/x86_64-linux-gnu/libc.so.6: версия `GLIBC_2.34' не найдена (требуется ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libc.so.6: версия `GLIBC_2.32' не найдена (требуется ./MyProject)
./MyProject: /lib/x86_64-linux-gnu/libstdc++.so.6: версия `GLIBCXX_3.4.29' не найдена (требуется ./MyProject)

Я не могу:

  • обновить целевую машину
  • понизить мою машину разработки
  • использовать виртуальную машину (на самом деле я мог бы, но я всячески стараюсь этого избегать)

поэтому мне интересно, могу ли я просто установить системные библиотеки 20.04 в свою 21.10 и сказать QtCreator использовать тот или иной набор библиотек, например, для версий Qt.

ChanganAuto avatar
флаг us
*Франкенсистемы* никогда не были хорошей идеей...
David avatar
флаг cn
Нет, если вы ожидаете, что это сработает. Время использовать виртуальную машину.
флаг ve
@David в течение многих лет я использовал виртуальные машины, но я устал от них ... Я хочу использовать инструменты, которые работают в моей системе ... Итак, вы оба говорите, что невозможно запустить приложение для той же архитектуры, одного и того же дистрибутива, но просто предыдущая/следующая версия?
mchid avatar
флаг bo
Есть способы заставить ваше приложение использовать альтернативную библиотеку, чтобы оно не ломало систему, оставляя нетронутыми библиотеки по умолчанию и просто вызывая необходимые библиотеки при запуске исполняемого файла. [Этот ответ кажется безопасным] (https://stackoverflow.com/a/47115598/3393576). Вы **не** хотите заменять ваши текущие файлы glibc, а также **не** `экспортировать` во всю вашу систему.
mchid avatar
флаг bo
Вы хотите, чтобы ваша система запускала библиотеки glibc по умолчанию, но только исполняемый файл для использования альтернативных библиотек.
Рейтинг:3
флаг cn

Обновление одного приложения из группы никогда не бывает хорошей идеей, особенно в отношении glibc.

Для инструментов сборки Лучший способ решить эту проблему — использовать контейнер Docker.

Понижение версии возможно, но требует чистой установки, а обновление до 21.10 не рекомендуется, так как 20.04 является фактически хорошо поддерживаемым дистрибутивом, а 21.10 в любом случае близок к окончанию срока службы.

флаг ve
Вы говорите об этом? https://www.docker.com/resources/какой-контейнер
Nicolas Formichella avatar
флаг cn
Да, @Mark, докер - это один из *способов* создания наборов инструментов, поскольку вы можете запускать любую Ubuntu с 14.04 (не рекомендуется) вплоть до бета-версии 22.04 LTS, не касаясь вашей системы.
флаг ve
Если я правильно понимаю, это только для развертывания. Однако я не могу отлаживать.
Nicolas Formichella avatar
флаг cn
Да, именно @Mark, это для сборки наборов инструментов
Рейтинг:1
флаг zw

Ориентация на промежуточный выпуск нецелесообразна.
Чтобы упростить рабочий процесс, вы должны использовать версию с долгосрочной поддержкой как на клиентских, так и на клиентских компьютерах.

Как вы уже знаете, в настоящее время последней версией LTS является 20.04 LTS.

Также вы можете дождаться апреля 2022 года, а затем настроить обе машины на 22.04 LTS. Это позволит безупречно использовать ваше приложение до 2027 года.

флаг ve
Это было бы лучше всего подходит для моих текущих потребностей. В любом случае, я узнал, как работает Linux, на собственном горьком опыте.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.