Имитировать запуск «make install» - «пробный запуск» или утилита-симулятор?

13

Есть ли общий способ запуска сценария bash и просмотра команд, которые в результате получаются, но на самом деле не запускают команды - то есть «пробный запуск» / своего рода симулятор?

У меня есть скрипт установки базы данных (на самом деле «make install» после запуска ./configure и make), который я хочу запустить, но он устанавливает все виды вещей, которые мне не нужны.

Так что я бы хотел, чтобы посмотреть, что именно он собирается делать, прежде чем запускать его по-настоящему - возможно, даже вместо этого запускать команды вручную.

Есть ли какая-либо утилита, которая может выполнить такую ​​задачу (или что-нибудь связанное / подобное)?

Verace
источник
Я думаю, что set -n делает что-то подобное. Попробуйте также добавить -x.
Джефф Шаллер
Как передать "make install" в set -n?
Vérace
bash -n make install, но от man bash: «Интерактивная оболочка может игнорировать эту опцию».
pfnuesel
Там нет опции Dryrun в bash. См. Также здесь stackoverflow.com/questions/19115156/…
pfnuesel

Ответы:

16

GNU make имеет возможность выполнить пробный прогон:

'-N'

'--Just-печать'

'--прогон, репетиция'

'--Recon'

«Нет-оп». Причины заставляют печатать рецепты, которые необходимы, чтобы сделать цели современными, но не фактически выполнить их. Обратите внимание, что некоторые рецепты все еще выполняются, даже с этим флагом (см. Как работает переменная MAKE). Также все рецепты, необходимые для обновления включенных make-файлов, все еще выполняются.

Так что для вашей ситуации просто запустите, make -n installчтобы увидеть команды, которые makeбудут выполняться.

Джефф Шаллер
источник
5

Любая версия makeимеет -nпараметр (см. Описание POSIXmake ), но оболочка не имеет соответствующего параметра (см., Например, команды Show без их выполнения ).

Чтобы усугубить ситуацию, если вам случится использовать automake, он вставляет большие фрагменты шаблонных сценариев (которые его разработчики называют «рекурсивными правилами»), которые побеждают способность любого использовать «make -n» и видеть, что будет бывает.

Дальнейшее чтение:

Томас Дики
источник