Hi MaCo,
Nun möchte ich den als rpm installieren Apache 1.3.20 mit einer
source-download auf 1.3.26 updaten.
fein. Ich bin nämlich kein Freund von binären Blackboxen, wenn es
auch saubere Source-Installationen gibt.
Und auf Deiner Plattform, unter Verwendung von "configure", ist das
vertretbar einfach - auf einem Windows-PC ohne C-Compiler wäre das
etwas ganz Anderes.
meine erste Frage... mit --with-layout=SuSE kann ich ja die
Verzeichnisse schön übernehmen die SuSE mir vorgibt, wunderbar,
Naja. Als "wunderbar" würde ich freiwillig nichts ansehen, was von
der Installationsstruktur dessen abweicht, was die Apache Group
selbst vorgibt - dort ist beispielsweise _alles_ innerhalb eines
einzigen Zielverzeichnisses enthalten, und das kannst Du jederzeit
auch einfach löschen, wenn Du den Apache deinstallieren willst.
Aber die Geschmäcker sind verschieden.
aber wie sieht das mit den Modulen und den Apacheeinstellungen
(also den kompiliereinstellungen) aus? Der Apache der installiert
ist ist ja ne rpm installation... wo kann ich herausfinden mit
welchen Modulen der kompiliert wurde
"httpd -l" sagt Dir das. Wohlgemerkt - damit siehst Du, was alles
einkompiliert ist - mehr nicht.
Es kann gut sein, daß Du als Ausgabe bekommst, daß "mod_so" einkom-
piliert ist und sonst nichts, weil alles andere als shared objects
nachgeladen wurde (was ich persönlich nicht mag, aber ...).
In diesem Falle mußt Du die komplette httpd.conf lesen und verstehen
(dazu schon mal mein Beileid, wenn Du eine vorgefertigte httpd.conf
mit Müllionen von "LoadModule"- Zeilen vorliegen hast).
bzw. wie kann ich sicher gehen das bei meinem update auch nur die
module geupdatet werden die auch schon da sind, neue möchte ich
erstmal nicht installieren...
Dabei mußt Du unterscheiden, wie Du mit den Modulen umgehst.
Geht es darum, sie wirklich in den Apache einzukompilieren, dann ist
jedes Modul mehr in der Tat auch mehr RAM-Belegung, aber jedes Modul
zuwenig zwingt Dich dazu, den Apache neu zu übersetzen, falls Du
Deine Meinung nachträglich änderst.
"configure" ist dafür das Werkzeug Deiner Wahl; da es extrem viele
Parameter verwendet, benutze ich ein kleines Shell-Skript, in dem ich
den "configure"-Aufruf speichere. Wenn ich ein Modul mehr brauche,
dann füge ich dort eine Zeile ein, übersetze den Apache neu (das
kann ein paar Minuten dauern), stoppe ihn, mache "make install" (das
dauert nur ein paar Sekunden) und starte ihn wieder - fertig.
Wenn Du dagegen die Module nur via mod_so dynamisch nachladen willst,
dann ist es reichlich egal, was alles an übersetzten Modulen auf
Deiner Platte herumliegt - entscheidend ist dann nur der Inhalt
Deiner httpd.conf mit den entsprechenden LoadModule-Anweisungen.
Nachladen ist also flexibler, aber nicht ganz so performant.
Und Du mußt Dich damit befassen, in welcher Reihenfolge die Module
geladen werden sollen - das ist nicht ganz einfach. Wenn Du alle
Module einkompilierst, dann übernimmt "configure" diesen Job - der
weiß, welche Reihenfolge funktioniert.
gibt es da vielleicht ne datei die alle momentanen modul und
verzechnisskonfigurationen speichert, und die man für die
updateinstallation als schablone nehmen kann?
Bei der Kompilationsmethode stehen die Module im httpd-binary drin,
deshalb kann sie via "httpd -l" ja auch ausgegeben werden.
Beim Nachladen hilft nur httpd.conf lesen und verstehen.
Was die Pfade angeht - diese Informationen sind auf viele Stellen
verstreut. Beispielsweise werden im Skript "apachectl" (mit dem
man den Apache startet etc. - vergiß alles, was Dir irgendwelche
Betriebssystem-Verpacker statt dessen anzudrehen versuchen ;-)
während dessen Installation der Installationspfad der Apache-
Binaries eingebrannt.
Auch die Apache-Konfiguration (httpd.conf) enthält Pfade Deines
Servers (z. B. ServerRoot) und wird also während der Installation
verändert.
So, und dann noch eins... hat man mal einen non-rpm Apache
installiert, wie kann man den dann wieder deinstallieren...
Dazu hat Christoph m. E. alles gesagt.
also nicht unbedingt von hand löschen... im makefile gibts ja
keine option für uninstall o.ä... was könnte man da tun?
Das ist genau der Grund, weshalb ich schon beim Installieren wissen
möchte, wo genau das "make install" herumgesaut hat.
Wenn ich per "configure ---prefix=<pfad>" ein Makefile gebaut habe,
dann kann ich mir sicher sein, daß auch nur in <pfad> das Ergebnis
von "make install" gelandet ist.
Ansonsten, bitte nicht den Kopf abreisen... ich hab hier schon
Apache Bücher... nur sagen die leider herzlich wenig über
deinstallieren und updates... nur installation und konfiguration...
Das liegt daran, daß Dein Problem gar nichts mit Apache zu tun hat,
sondern mit Deinem Unix-Verpacker, der glaubt, alles selbst und hin-
reichend anders tun zu wollen, als es vom Apache selbst vorgesehen
ist. Auch deshalb empfehle ich die Methode via "configure": Die ist
von der Apache-Dokumentation abgedeckt.
Viele Grüße
Michael