[lug-ld] Was macht ldconfig?
Christian Boltz
lug-ld at cboltz.de
Mi Nov 5 14:11:37 CET 2014
Hallo Ekki, hallo zusammen,
vorweg @Uwe: Die monatlichen Treffen finden im Vier Jahreszeiten in
Landau statt - ruf am Besten direkt dort an und frage, ob Hunde erlaubt
sind.
Am Dienstag, 4. November 2014 schrieb Ekki Plicht:
> Tag.
> Es ist ja so ruhig hier... Ich hoffe, ich störe nicht :)
Huch! Eine Mail! *aufschreck*
> Ich würde gerne mal wissen, was 'ldconfig' genau macht und wann man
> das anwenden muss.
Die technischen Details hat Alf schon erklärt, und zur Wahl des
Verzeichnisses verweise ich auf die Antwort von Uwe.
Bleibt noch die Frage zu /etc/ld.so.conf und /etc/ld.so.conf.d/
> Ich habe daraufhin mal die man-Page von ldconfig angeguckt... Ok, da
> gibt's ne /etc/ld.so.conf und /etc/ld.so.conf.d/ usw. Da steht aber
> nur ein Eintrag drin, '/usr/lib/libfakeroot'. Was immer das heissen
> mag. So richtig verstanden, was da passiret habe ich aber leider
> nicht.
>
> Was müsste ich denn wo drehen, damit a) entweder der Linker neue Libs
> nicht nach '/usr/local/lib/' sondern nach '/usr/lib/' schmeisst, oder
> b) dass ein Programm seine Libs auch in '/usr/local/lib/' sucht.
In /etc/ld.so.conf und /etc/ld.so.conf.d/*.conf stehen Verzeichnisse,
die Libraries enthalten. Stell Dir das Ganze als $PATH für Libraries
vor ;-)
Du kannst also einfach folgendes machen:
echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf
Anschließend einmal "ldconfig" aufrufen. Das durchsucht alle
Verzeichnissen, die in /etc/ld.so.conf{,d/*.conf} gelistet sind. Laut
Manpage werden zusätzlich auch /lib und /usr/lib mit aufgenommen, auch
wenn sie nicht in den Konfigurationsdateien stehen.
Die Liste aller gefundenen Libraries wird von ldconfig in
/etc/ld.so.cache geschrieben. Aus der Manpage ldconfig(8):
/etc/ld.so.cache
File containing an ordered list of libraries
found in the directories specified in /etc/ld.so.conf,
as well as those found in /lib and /usr/lib.
Der Umweg über ldconfig bzw. /etc/ld.so.cache ist nötig, damit nicht
jedes Programm bei Start alle Verzeichnisse in /etc/ld.so.conf{,d/*}
abklappern muss - das würde den Programmstart vermutlich deutlich
verlangsamen.
Gruß
Christian Boltz
--
Ossi-Virus
Güdn tog, isch bün än Häggr aüs Läibzsch un dis is än selbsdprögammirdr
bösardscher Gommbjudrfirus. Do isch nö nit sö vül wäis von döm Gommbjudr
is dis än mänuoöllr Firus. Alsö löschnse bidde ölle Dodein fön de
Fesdpladde und schiggnse disn Firus ön ölle di se genn.
- Dangge für de Midorbeid -