Nun ja, sollte dieses “wir kopieren $EXECUTABLE nach /usr/bin” in einem Tutorial vorgekommen sein, wo von Hand installiert wurde, dann war der “Einlauf” auch vollkommen gerechtfertigt
Eigentlich ist es ganz simpel, und AFAIK müssten sich alle großen Distris auch genau daran halten.
Was über die Paketverwaltung installiert wird, hat NIE --prefix=/usr/local sondern --prefix=/usr, was per Dreisatz (oder allgemein “von Hand”) installiert wird, sollte IMMER nach /usr/local installiert werden.
Der Grund ist einfach, man hat nun mal bei “Handarbeit” keinerlei Kontrolle, was da genau installiert wird bzw. es werden auch schon vorhandene Dateien selben Namens beim “make install” ohne Warnung überschrieben, bei RPM ist das ein wenig anders.
Des Weiteren geht das System davon aus, daß der User bei selbstgebautem Kram weiß, was er da tut (OK, diese Annahme ist natürlich gefährlich ;), aber man muss hier eine Entscheidung treffen), denn /usr/local wird bevorzugt aufgerufen, sowohl in $PATH als auch in $LD_LIBRARY_PATH:
Fatboy:~ # useradd dummy -m -d /home/dummy
Fatboy:~ # su - dummy
dummy@Fatboy:~> echo $PATH
/home/dummy/bin:**/usr/local/bin:**/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/opt/gnome/bin:/usr/lib/qt3/bin:/opt/real/RealPlayer:/usr/sbin
Damit verhindert man allerdings nicht, daß ein von Hand installiertes Programm andere Anwendungen zerschiesst, denn wie oben bemerkt werden evtl. von diesem “handgemachtem” Programm mitinstallierte Bibliotheken in /usr/local/lib ebenfalls bevorzugt aufgerufen, und wenn z.B. die selbe Bibliothek in anderer Version auch in /usr/lib liegt, kann es vorkommen, daß andere Anwendungen, die ebenfalls gegen diese Bibliothek (aber eben die in /usr/lib!) gelinkt sind auf einmal mit netten “symbol lookup errors” die Grätsche machen.
Der Vorteil ist dann aber, daß man
a) den Kram auch wieder ohne Nachinstallation von Paketen loswerden kann, denn die Bibliothek des Systems wurde nicht überschrieben
b) mit ldd auch sofort sieht, ob eine Bibliothek aus /usr/local/lib aufgerufen wird, hätte man nach /usr/lib installiert, dann wäre das Auffinden der “faulen Eier” deutlich schwerer.