История изменений
Исправление Kron4ek, (текущая версия) :
Собираешь бинарник обычным образом (не статически), смотришь через ldd, какие библиотеки он использует, копируешь их все в каталог рядом с бинарником. Запускаешь бинарь вот так:
/path/to/app/ld-linux-x86-64.so.2 --library-path
/path/to/app /path/to/app/binaryname
Можно простой шелл скрипт написать. И бинарь в итоге работает везде. Я так запускал бинарники, собранные на Arch, на Ubuntu 14.04 - и они работали.
Можно и просто через LD_LIBRARY_PATH попробовать указать путь к библиотекам, но это не сработает, если бинарник был собран с более новой версией glibc, так что вариант с ld-linux надежнее. А еще лучше статическую линковку использовать, если есть такая возможность.
Правда, не уверен, что это будет работать со сложными и огромными программами, но на маленьких утилитах вполне работает.
p.s. Добротно собранные AppImage, кстати, именно так и делают.
Исходная версия Kron4ek, :
Собираешь бинарник обычным образом (не статически), смотришь через ldd, какие библиотеки он использует, копируешь их все в каталог рядом с бинарником. Запускаешь бинарь вот так:
/path/to/app/ld-linux-x86-64.so.2 --library-path
/path/to/app /path/to/app/binaryname
Можно просто шелл скрипт написать. И бинарь в итоге работает везде. Я так запускал бинарники, собранные на Arch, на Ubuntu 14.04 - и они работали.
Можно и просто через LD_LIBRARY_PATH попробовать указать путь к библиотекам, но это не сработает, если бинарник был собран с более новой версией glibc, так что вариант с ld-linux надежнее. А еще лучше статическую линковку использовать, если есть такая возможность.
Правда, не уверен, что это будет работать со сложными и огромными программами, но на маленьких утилитах вполне работает.
p.s. Добротно собранные AppImage, кстати, именно так и делают,