LINUX.ORG.RU

История изменений

Исправление 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, кстати, именно так и делают,