Kompilieren von Software mit denselben Optionen wie bei einer vorherigen Installation

Kompilieren von Software mit denselben Optionen wie bei einer vorherigen Installation

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 ./configureist der Ordner, aus dem er die Software ausgeführt hat, noch intakt.

Antwort1

Wenn das gesamte Verzeichnis, in dem ./configurezuvor ausgeführt wurde, vollständig intakt ist, befindet sich in diesem Verzeichnis eine Datei namens config.status. Die config.statusDatei wird beim ./configure +argsAusfü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 installum 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.statusSkript ausführen. Dadurch wird die gesamte vorherige ./configureArbeit wiederholt, sodass Sie saubere make, make test, und ausführen können make 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 ./myconfigurezum 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.statusunter einen neuen Dateinamen myconfigurewie bleibt diese Datei bei allen Befehlen wie make clean, oder erhalten make distclean.

verwandte Informationen