Einbinden selbstkompilierter Programme in /home/user

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
Rawbit
Beiträge: 716
Registriert: 24.12.2004 13:17:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Einbinden selbstkompilierter Programme in /home/user

Beitrag von Rawbit » 17.10.2021 20:36:26

Hallo Debianforum,

seit einiger Zeit kompiliere ich Programme selbst und setze sie mit --prefix:/home/user/apps,
um Probleme mit der Standard-Installation von Debian zu vermeiden.

Oft werden dort lib.so's nicht gefunden.

Diese möchte ich in .profiles mit export LD_LIBRARY_PATH="$HOME/apps/lib/" dem System bekannt machen.
Muss ich dann jede nicht gefunden lib.so manuell in $HOME/apps/lib mit ln -s linken?

Geht das einfacher?

Gruß

Rawbit

Benutzeravatar
whisper
Beiträge: 3184
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Einbinden selbstkompilierter Programme in /home/user

Beitrag von whisper » 17.10.2021 20:40:13

Wäre so besser.

Code: Alles auswählen

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/apps/lib/"

Benutzeravatar
Rawbit
Beiträge: 716
Registriert: 24.12.2004 13:17:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Einbinden selbstkompilierter Programme in /home/user

Beitrag von Rawbit » 17.10.2021 20:49:03

Wenn ich das so änder, ergibt

echo $LD_LIBRARY_PATH
:/home/user/apps/lib/:/home/user/apps/lib/:/home/user/apps/lib/

Was ändert das?

Debian muss doch die lib.so's finden?

Gruß

Rawbit

Benutzeravatar
Livingston
Beiträge: 1427
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Einbinden selbstkompilierter Programme in /home/user

Beitrag von Livingston » 17.10.2021 21:09:40

Der Linker findet die gesuchten Library-Abhängigkeiten in der Binärdatei /etc/ld.so.cache. Konfiguriert wird diese über /etc/ld.so.conf und den Dateien unter /etc/ld.so.conf.d. Um dort Änderungen global vorzunehmen, muss man diese ändern und das Programm /sbin/ldconfig drauf loslassen. Mit den Optionen -N, -X und -v kann man einen Übungslauf machen, ohne dass Cache und Links neu erzeugt werden.
Auf jeden Fall die man page lesen, bevor Du da irgendwas machst.
Für user-lokale Libraries würde ich aber bei LD_LIBRARY_PATH bleiben.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Antworten