2015-01-31 17 views
10

Ho una versione di glibc 2.19 su Ubuntu installata. Vorrei anche installare la versione 2.3.4 insieme a 2.19 sulla mia macchina.Come installare più versioni di glibc?

Per impostazione predefinita, tutto il programma deve utilizzare 2.19 ma solo il programma specifico deve utilizzare 2.3.4.

Le due domande sono:

  1. Come dovrei installare la 2.3.4 in posizione particolare, dicono /usr/glibc2.3.4?
  2. Come dovrei specificare un particolare programma per utilizzare la versione 2.3.4?
+2

Visita questo: http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host, potrebbe aiutarti –

+4

Chiunque sia contrassegnato come "aiuto generico per il calcolo" deve rileggere il le linee guida del sito su ciò che è off/on topic. Questo sta chiedendo a glibc - una libreria di programmazione, che fa cadere la domanda in ** su topic **. – Qix

+0

@GauravDave: Grazie per il puntatore. Avevo visto il post a cui mi riferivi prima di pubblicare la domanda. Parla di come collegare un exe con la versione non predefinita di glibc. Questo in parte risponde alla mia seconda domanda, ma non del tutto poiché ho 100 di exes che sono stati costruiti attraverso i tanti makefile. Come per la soluzione al post indicato, dovrò modificare quei molti makefile per specificare l'opzione --rpath e --dynamic-linker. Mi piacerebbe sapere se esiste una soluzione migliore. Anche la prima domanda non ha risposta, ad esempio come installare una versione diversa di glibc per coesistere con quella predefinita. – UnSat

risposta

1

Se si desidera solo le librerie dinamiche dal l'altra versione di glibc si può semplicemente utilizzare LD_LIBRARY_PATH. Ma se si desidera utilizzare completamente l'altra versione, è necessario compilare l'altra versione per ottenere le parti statiche. E potresti anche voler compilare l'altra versione di glibc per ottenere tutti i percorsi hardcoded che puntano alla tua directory di installazione per il caricamento di file di dati e plugin (per NSS e gconv). L'utilizzo di --prefix=/usr/glibc2.3.4 imposterà anche il soname del caricatore dinamico su /usr/glibc2.3.4/lib/ld-linux.so.2 (o qualcosa di simile a seconda dell'architettura) che verrà codificato in ogni programma collegato.

1
  1. Estrarre la seconda versione all'interno /opt.
  2. Utilizzare LD_LIBRARY_PATH per cercare le librerie all'interno di /opt.
Problemi correlati