Simular a execução de um "make install" - um "dry run" ou utilitário de simulador?


13

Existe uma maneira genérica de executar um script bash e ver os comandos resultantes, mas na verdade não executar os comandos - ou seja, uma espécie de "execução a seco" / simulador?

Eu tenho um script de instalação do banco de dados (na verdade, "make install" após executar ./configure and make) que desejo executar, mas está instalando todo tipo de coisas que eu não quero.

Então, eu gostaria de uma maneira de ver exatamente o que vai fazer antes de executá-lo de verdade - talvez até mesmo executar os comandos manualmente.

Existe algum utilitário que possa executar essa tarefa (ou qualquer coisa relacionada / semelhante)?


Eu acho que 'set -n' faz algo assim. Tente adicionar -x também.
Jeff Schaller

Como canalizo "make install" para definir -n?
Vérace 11/04

bash -n make install, mas de man bash: "Um shell interativo pode ignorar esta opção."
Pfnuesel

Não há opção dryrun no bash. Veja também aqui stackoverflow.com/questions/19115156/…
pfnuesel 11/11/16

Respostas:


16

O GNU make tem uma opção para executar a seco:

'-n'

'--just-print'

'--funcionamento a seco'

'--recon'

"No-op". As causas são necessárias para imprimir as receitas necessárias para atualizar os alvos, mas na verdade não os executam. Observe que algumas receitas ainda são executadas, mesmo com esse sinalizador (consulte Como funciona a variável MAKE). Além disso, todas as receitas necessárias para atualizar os makefiles incluídos ainda são executadas.

Portanto, para a sua situação, basta executar make -n installpara ver os comandos que makeseriam executados.


5

Qualquer versão makepossui uma -nopção (consulte a descrição POSIX demake ), mas o shell não possui opção correspondente (consulte, por exemplo, Mostrar comandos sem executá-los ).

Para agravar a situação, se você usar o automake, ele colará grandes pedaços de scripts clichê (que seus desenvolvedores chamam de "regras recursivas") que anulam a capacidade de qualquer pessoa usar o "make -n" e ver o que será acontecer.

Leitura adicional:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.