Я предлагаю вам создать виртуальную машину, на которой у вас есть права sudo.Затем соберите библиотеки, такие как OpenSSL, используя --prefix = / usr, чтобы make install поместил их в обычную системную библиотеку.
Затем соберите свой инструмент, в данном случае Erlang, используя -rpath.Затем используйте ldd
, чтобы найти все зависимости библиотек для Erlang и любых портов (расширения C) и скопировать их в каталог lib Erlangs.Проверьте все двоичные файлы и библиотеки с помощью readelf -d, чтобы убедиться, что RPATH установлен в $ ORIGIN или $ ORIGIN /../ lib, если необходимо.Используйте patchelf, чтобы исправить эти вещи, если процесс компоновки не совсем правильный (или вы скопировали во вторичные зависимости системных библиотек).
Затем используйте patchelf, чтобы установить интерпретатор для ваших двоичных файлов (не библиотек), чтобы он указывал на ld-linux.so.2 в каталоге lib Эрланга.А затем запустите тестовый набор, используя
strace -e open erl ...
, чтобы убедиться, что ваша сборка ничего не открывает в / lib или /usr/lib.
На этом этапе смонтируйте его, и он будетзапустить на любом Linux.
См. этот вопрос Компиляция Python 2.6.6 и необходимость внешних пакетов wxPython, setuptools и т. д ... в Ubuntu для получения более подробной информации о том, как я собирал Python вэта мода.