Symulować działanie „make install” - „suchej pracy” czy narzędzia symulatora?

13

Czy istnieje ogólny sposób uruchamiania skryptu bash i sprawdzania poleceń, które się z tym wiążą, ale w rzeczywistości nie uruchamiają poleceń - tj. Rodzaju „suchego uruchamiania” / symulatora?

Mam skrypt instalacyjny bazy danych (właściwie „make install” po uruchomieniu ./configure i make), który chcę uruchomić, ale instaluje wiele rzeczy, których nie chcę.

Chciałbym więc zobaczyć, co dokładnie zrobi, zanim uruchomię go naprawdę - może nawet zamiast tego uruchomię ręcznie polecenia.

Czy jest jakieś narzędzie, które może wykonać takie zadanie (lub coś podobnego / podobnego)?

Vérace
źródło
Myślę, że „set -n” robi coś takiego. Spróbuj także dodać -x.
Jeff Schaller
Jak mogę potokować „make install”, aby ustawić -n?
Vérace
bash -n make install, ale z man bash: „Interaktywna powłoka może zignorować tę opcję”.
pfnuesel 11.04.16
Nie ma opcji dryrun w bash. Zobacz także tutaj stackoverflow.com/questions/19115156/…
pfnuesel 11.04.2016

Odpowiedzi:

17

GNU make ma opcję wykonania suchego rozruchu:

„-n”

„- just-print”

'--próba'

'--zwiad'

„Brak operacji”. Powoduje, że make drukuje przepisy, które są potrzebne, aby cele były aktualne, ale w rzeczywistości ich nie wykonuje. Zauważ, że niektóre przepisy są nadal wykonywane, nawet z tą flagą (zobacz Jak działa zmienna MAKE). Również wszelkie przepisy potrzebne do aktualizacji dołączonych plików makefile są nadal wykonywane.

Więc w twojej sytuacji, po prostu uruchom, make -n installaby zobaczyć polecenia, które makezostaną wykonane.

Jeff Schaller
źródło
5

Każda wersja makema -nopcję (patrz opis POSIXmake ), ale powłoka nie ma odpowiedniej opcji (patrz na przykład Pokaż polecenia bez ich wykonania ).

Aby pogorszyć sytuację, jeśli zdarzy się, że użyjesz automake, wkleja on duże fragmenty skryptów typu kocioł (które jego twórcy określają jako „reguły rekurencyjne”), które pokonują zdolność każdego do użycia „make -n” i zobaczą, co będzie zdarzyć.

Dalsza lektura:

Thomas Dickey
źródło