Ich möchte eine Software auf einer neuen VM kompilieren und installieren. Die Software wurde von einem anderen Administrator erfolgreich auf einer anderen VM installiert, aber ich möchte den genauen Befehl mit den von ihm verwendeten Optionen duplizieren. Ist das möglich? Übrigens ./configure
ist der Ordner, aus dem er die Software ausgeführt hat, noch intakt.
Antwort1
Wenn das gesamte Verzeichnis, in dem ./configure
zuvor ausgeführt wurde, vollständig intakt ist, befindet sich in diesem Verzeichnis eine Datei namens config.status
. Die config.status
Datei wird beim ./configure +args
Ausführen von generiert und zeichnet die ausgeführten Argumente auf. Wenn Sie alles genau gleich machen möchten und das neue System über alle Abhängigkeiten verfügt, haben Sie mehrere Optionen.
- Sie können das gesamte Verzeichnis tarnen/gzippen, das Tarball auf das neue System kopieren, entpacken und ausführen,
make install
um die zuvor erstellten Objekte einfach neu zu installieren. Dies sollte funktionieren, wenn das System ähnlich genug ist (Architektur/Betriebssystem). - Sie können das gesamte Verzeichnis tar/gzippen, das Tarball auf das neue System kopieren, es entpacken und das
./config.status
Skript ausführen. Dadurch wird die gesamte vorherige./configure
Arbeit wiederholt, sodass Sie sauberemake
,make test
, und ausführen könnenmake install
. - Sie können auch einen komplett sauberen Build mit den exakten Argumenten des vorherigen Administrators durchführen, indem Sie
cp config.status myconfigure
,make clean
,make distclean
, und dann./myconfigure
zum Wiederherstellen ausführenalledie Arbeit.
Die letzte Option würde sogar funktionieren, wenn Sie zwischen verschiedenen Linux-Distributionen oder von Linux zu Solaris oder FreeBSD oder von 32-Bit zu 64-Bit wechseln würden, vorausgesetzt, dass alle Abhängigkeiten der Software zuvor erfüllt wurden.
Durch das Kopieren config.status
unter einen neuen Dateinamen myconfigure
wie bleibt diese Datei bei allen Befehlen wie make clean
, oder erhalten make distclean
.