Posso usare il mio ld.so.cache?


14

ldconfig ha due opzioni interessanti:

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

Ho provato a copiare /etc/ld.so.confnella mia directory home e l'ho modificata per includere i percorsi delle mie librerie locali, ad es /home/syockit/local/usr/lib. Ecc. E ho funzionato

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

e successivamente, per confermare che le librerie sono memorizzate nella cache, ho eseguito

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

e include tutte le mie librerie oltre a includere anche le librerie di sistema.

Ora, voglio che il linker predefinito utilizzi questi due. Ma in man ld.so, non vedo alcuna menzione di poter usare custom .confo .cache. Allora, qual è il punto delle due opzioni precedenti di ldconfigallora?

Risposte:


9

Penso che la risposta alla tua domanda sia no, anche se puoi fare la stessa cosa in altri modi.

in man ld.so, non vedo alcuna menzione di poter usare .conf o .cache personalizzati

Vero, ma si parla di $LD_LIBRARY_PATHe e --library-path, il primo è più in generale utile.

qual è il punto delle due opzioni precedenti di ldconfigallora?

Quindi puoi creare una cache senza sovrascrivere quella di sistema e senza dover usare le conf di sistema.


...Solo per gioco? O è per il sistema forense?
Syockit,

1
Potrebbe essere per un'immagine di sistema o un ambiente chroot, ecc.
Riccioli d'oro,

5

/etc/ld.so.confviene letto solo da ldconfig(il programma di generazione della cache), non da ld.so(il caricatore dinamico). È possibile modificare il percorso del file di configurazione se si desidera generare una cache diversa da quella predefinita del sistema.

/etc/ld.so.cacheviene letto da ld.soe non puoi farlo leggere da un'altra posizione. Può essere comunque utile passare una diversa posizione di output a ldconfig. Il caso d'uso più comune è probabilmente l' ambiente chroot . È possibile utilizzare ldconfig -r /some/rootper eseguire ldconfigsu una radice alternativa e posizionare l'output dove si desidera (all'interno o all'esterno di quella radice). Dovrai emettere l'output /some/root/etc/ld.so.cacheo copiarlo lì in seguito. Esistono altri casi d'uso piuttosto oscuri, ad esempio se si desidera eseguire ldconfigcome utente non privilegiato (che non è in grado di scrivere /etc/ld.so.cache) e quindi spostare il file in posizione in un secondo momento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.