LINUX.ORG.RU

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

Исправление 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 программы...