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 Makefile
einzigen Dinge betrifft, die darin definiert sind oder die ausgeführt werden. „Best Practices“ beim Aktualisieren von Software aus der Quelle sind normalerweise, die uninstall
Option zu verwenden, wenn Sie kein ausgeführt haben, make clean
oder Ihr ursprüngliches Quellinstallationsverzeichnis zu löschen.
Sie müssen jedoch vorsichtig sein, falls das Programm Dateien außerhalb von /usr/local
Ihnen 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 -b
oder sichern.--backup
Bearbeiten:
Bei Betrachtung Makefile.in
der aktuellen Version httpd
sieht es so aus, als würden mehrere ihrer cp
Befehle den -p
Schalter hinzufügen, der Besitz und Zeitstempel beibehält.