Заставить GNU make использовать определенную оболочку - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь перенести проект на новую систему, но make-файл перестал работать. Важно отметить, что две вычислительные системы имеют общее хранилище данных.

Чтобы манипулировать процессом сборки, я использую несколько вызовов shell внутри файла make. На новой системе это вызывает ошибку

make: /usr/bin/sh: Command not found

В новой системе исполняемые файлы оболочки находятся в /bin/, а в старой системе - в /usr/bin. Я явно не сказал make, чтобы искать в /usr/bin/, и я не знаю, как сказать иначе. Единственное другое обсуждение, связанное с этой темой, которое я смог найти, касается определения присутствующей оболочки, а не помощи GNU в поиске подходящей оболочки.

Как обнаружить оболочку, используемую в GNU make?

Есть идеи о том, как решить эту проблему?

1 Ответ

0 голосов
/ 01 мая 2018

Используйте переменную окружения SHELL. Либо установите его в среде (export SHELL=/bin/sh) перед вызовом make, либо введите SHELL=/bin/sh в командной строке make.

Вероятно, проблема в том, что вы неправильно установили SHELL=/usr/bin/sh в файле запуска (.profile или .login или что-то подобное) в новой системе, что вызовет проблемы для любой программы, которая пытается его использовать, а не просто сделай.

...