Überschreibt „make install“ Dateien?

Überschreibt „make install“ Dateien?

Ich habe mir etwas Zeit genommen, um eine neuere Version von Apache2.x auf meinem Mac OS X 10.6.8 zu installieren.

Bei der Konfiguration von Apache über ./configure habe ich das Darwin-Layout angegeben. Dieses Layout übernimmt die Pfadkonfiguration der vorhandenen Apache-Installation, was ich auch möchte, da ich die alte ersetzen möchte.

Ich habe make ausgeführt und dann natürlich sudo make install.

Ich habe die Apache-Version überprüft, indem ich

apachetcl -v

und ich bekam

Server version: Apache/2.4.1 (Unix)
Server built:   Mar 31 2012 01:52:54

Das ist gut. Aber hier kommt der seltsame Teil. Ich habe die „alte“ httpd.conf-Datei in /etc/apache2 überprüft und sie hatte ein altes Änderungsdatum.

Das habe ich erst herausgefunden, als ich Apache ausgeführt habe. Apache hat versucht, einige Erweiterungen zu laden, die mit der neuen Version nicht kompatibel waren.

Dies veranlasste mich, das Verzeichnis /usr/libexec/apache2 zu überprüfen und sah, dass die Module bis auf zwei oder drei nicht kürzlich geändert worden waren. Im Wesentlichen hatte sudo make install nicht jede mögliche Datei überschrieben.

What is the convention here? Should make install overwrite everything or not?

Ich gehe davon aus, dass es nur davon abhängt, wie die Entwickler das Konfigurationsskript und das Makefile geschrieben haben.

Ich habe schließlich rm -rf auf allen mir bekannten vorhandenen Apache-Verzeichnern ausgeführt, bevor ich make install erneut ausgeführt habe. Danach war alles neu.

Antwort1

Sie haben Recht, was die Makefileeinzigen Dinge betrifft, die darin definiert sind oder die ausgeführt werden. „Best Practices“ beim Aktualisieren von Software aus der Quelle sind normalerweise, die uninstallOption zu verwenden, wenn Sie kein ausgeführt haben, make cleanoder Ihr ursprüngliches Quellinstallationsverzeichnis zu löschen.

Sie müssen jedoch vorsichtig sein, falls das Programm Dateien außerhalb von /usr/localIhnen installiert hat, könnten Sie Dateien entfernen, die vom Paketmanager hinzugefügt wurden. Häufig werden Hauptkonfigurationsdateien wie die von Apache nicht überschrieben und während der Installation einfach gelöscht, sie können oder werden beibehalten. Dies ist jedoch nicht immer der Fall. Sie können jedes Ziel mit der Installationsoption -boder sichern.--backup

Bearbeiten: Bei Betrachtung Makefile.inder aktuellen Version httpdsieht es so aus, als würden mehrere ihrer cpBefehle den -pSchalter hinzufügen, der Besitz und Zeitstempel beibehält.

verwandte Informationen