История изменений
Исправление wandrien, (текущая версия) :
Есть классическое решение через враппер на sh.
Допустим, у нас есть прога proga
. Переименовываем proga
в proga.bin
. Создаём файл proga
, куда пишем sh-скрипт. Этот скрипт при запуске детектирует путь, из которого запущен. Затем с учётом этого пути выставляет все нужные переменные окружения так, чтобы программа работала корректно, и вызывает proga.bin
. При необходимости можно делать cd
в нужный каталог и вообще что угодно, благо у нас в распоряжении полноценный скриптовый язык.
Другой путь – это сразу писать программу так, чтобы она понимала относительные пути. Хороший пример — это gcc, в нём же можно посмотреть, как это реализовано: Прибитые к ./configure --prefix=/usr программы...
Исходная версия wandrien, :
Есть классическое решение через враппер на sh.
Допустим, у нас есть прога proga
. Переименовываем proga
в proga.bin
. Создаём файл proga
, куда пишем sh-скрипт. Этот скрипт при запуске детектирует путь, из которого запущен. Затем с учётом этого пути выставляет все нужные переменные окружения так, чтобы программа работала корректно, и вызывает proga.bin
. При необходимости можно делать cd
в нужный каталог и вообще что угодно, благо у нас в распоряжении полноценный скриптовый язык.
Другой путь – это сразу писать программу так, чтобы она понимала относительные пути. Классический пример — это gcc, в нём же можно посмотреть, как это реализовано: Прибитые к ./configure --prefix=/usr программы...