Возможно ли скомпилировать приложение под linux (x64), имеющее зависимости, которое можно запустить на любом дистрибутиве linux без дополнительных действий со стороны сисадмина (компиляция, установка библиотек...)? Пробовал поставлять со всеми библиотеками и запускать с ld_library_path. Работает, но только на одинаковых дистрибутивах, иначе возникает ошибка связанная со стандартной библиотекой(не помню уже). Подумывал в сторону Docker, но нужно опять же его устанавливать. Возможно ли вообще сделать то что я пишу и какой разумный компромиcс если нет?
возникает ошибка связанная со стандартной библиотекой(не помню уже)
Очень много информации... :-) Подозреваю, что дело тут не в разных дистрибутивах, а в разных версиях этой библиотеки на разных дистрибутивах. Проще:
Вы разработали и собрали свою программу на хосте, где была установлена библиотека libaaa.7.so.
Вы перенесли ELF на другой хост, где установлена libaaa.6.so.
При запуске программы выдастся сообщение о том, что загрузчик не может найти седьмую версию этой библиотеки. И эта ситуация возможна на одном дистрибудитве, если на одном хосте установлена последняя версия. а на друго - более старая.
Бороться с этим можно двумя способами:
Попробовать обмануть загрузчик, выполнив команду вроде этой:
sudo ln -s libaaa.6.so libaaa.7.so
Но это рисковано...
А вот это:
реальное приложение действительно нужно компилировать для каждого дистрибутива
типичный видовозный подход - одна версия для семёрки, другая для.... Не повторяйте этой ошибки!
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости