Ok, wir bewegen uns jetzt zwar sehr stark auf den Offtopic rand, aber egal.
Glaub nicht, daß das hier so sehr stört, aber wir können ja schlimmstenfalls ein neues Thema aufmachen...
ch finde Crle nicht boese, begruendung: Crle ist System weit, nicht wie LD_L. bei der wenn einmal nicht gesetzt nichts mehr gehen.
Tot patchen hab ich noch nicht geschaft, und vergessen auch nicht.
Wenn Du allein an einem System arbeitest, ist das ja auch OK. Ich baue Pakete, die ggf. auch standalone laufen müssen. Mein Job ist es, Installationsverfahren zu entwickeln, die für beliebig viele Systeme automatisch lauffähige Anwendungen installieren. Da beißen solche Änderungen wie clre schon ab und zu.
Und eine Anwendung, die einen gesetzten LD_LIBRARY_PATH zum Funktionieren braucht, fällt unter meine Definition von "kaputt".
Alles in einen Ordner zu stopfen und den rest verlinken, das ist ein ansatz an den ich noch nicht gedacht habe. Aber ich werde ihn sicher nicht umsetzen, warum? /usr/local/ ist bei mir der Ordner fuer , meisten selbst gebaute, software. Da haeuft sich schnell muehl an, nicht alles was ich installiere wird als pkg gebaut, usw. So loesch ich bei nenn grossen Update einfach mal alle /usr/local pkg, was in ordner uebrigbleibt wird zur kenntnis genommen, dann aber auch vernichtet und die neuen Pkgs werden eingespielt.
Alles stopf ich da nicht rein, sondern nur die Sachen, die ich selber baue. Ja, das sind alles Pakete.
Was fuer mich noch gegen einen zentrallen Ordner spricht sind viele Sun Pkgs. Hier ist zB gnome 2.0 wieder in /usr, gewisse andere Freeware aber wieder /opt/sfw... Wenn ich da wirklich alles in einen Ordner haben will habe ich einen wirklich grossen aufwand wenn im vergleich mit der crle Loesung.
Ich glaube, da hast Du mich mist-verstanden. :-) Es geht um die ld-Option -R. Diese bewirkt, daß das binary, das man damit baut, den Pfad zu seinen shared libraries eingebaut hat (wie ein hartkodierter fester LD_LIBRARY_PATH). Das muß ich nur für meine Sachen machen.
Sun macht das "richtig". Beispiel: ldd -s /opt/sfw/bin/gimp liefert:
find object=libgtk-1.2.so.0; required by gimp
search path=/usr/lib:/opt/sfw/lib:/usr/openwin/lib (RPATH from file gimp)
....
Deshalb brauch ich kein /opt/sfw/lib in meinem LD_LIBRARY_PATH, und auch kein symlink. Wenn ich nun selber ein Programm baue, das eine Library aus /opt/sfw/lib verwendet, gebe ich einfach ld -R /opt/sfw/lib:/opt/local/lib an. Schon geht es. Kein globales crle.
Wenn ich das dann paketiere, muß ich natürlich ein depend-File mit einem Verweis auf das SFW...-Paket anlegen, in dem die shlib drin ist.
Gruß -- Volker