Visualizzazione dei risultati da 1 a 10 su 10

Discussione: compatibilità glibc

  1. #1
    stefano.to
    Guest

    compatibilità glibc

    Ciao a tutti

    chiedo subito scusa ma non so se postare qui o sotto programmazione, spero che vada bene.

    Devo decidere se usare per alcuni server una distro con glibc 2.3.4 o con le ultime 2.5, diciamo suse 9 o l'ultima opensuse.

    Il problema è questo: ho dei sw un po' vecchi che devo far girare, compilati sotto glibc 2.3 (di cui non ho i sorgenti ) però dovrei anche usare sw open recente, es php 5 mysql 5 etc.

    Il mio sw scritto sotto 2.3.4 ogni due minuti crasha con l'ultimo suse. La mia paura è che facendo un downgrade a suse9 che ha glibc 2.3.4 io perda un mucchio di compatibilità. P.es non so se mysql 5 mi va ancora bene, ecc ecc. L'alternativa è fare qualche giro allucinante per fare funzionare l'applicativo vecchio, che so, metterlo in una virtual machine....

    Avete consigli ? Grazie infinite.

  2. #2

  3. #3
    stefano.to
    Guest
    ok questo lo sapevo,

    ma come posso installare glibc di versione differente su una distro installata su una macchina, che ne ha un' altra versione ?

  4. #4
    mmm la butto la'

    compilandole con un altro: --prefix

    ?

    chiaramente se poi chi la deve utilizzare puo' reperirla in tale posto

  5. #5
    stefano.to
    Guest
    Ciao,

    ho provato, diciamo che il --prefix è /opt/suse9 con dentro glibc 2.3.4 e la macchina ha glibc 2.5

    preparo lo script pippotest.sh:

    export LD_LIBRARY_PATH=/opt/suse9/lib:/opt/suse9/usr/lib
    /opt/test/go.exe

    lancio,

    root@0nther0ad:> ./pippotest.sh

    /opt/test/go.exe: relocation error: /opt/suse9/lib/tls/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux.so.2 with link time reference

    cioè credo che comunque almeno il loader o come si chiami si accorga di saltare da una glibc all'altra e si arrabbi.

  6. #6
    Facendo una ricerca con "multiple glibc versions" saltano fuori parecchi risultati, in uno suggeriscono di lanciare il programma che richiede le glibc vecchie dentro a una chroot jail

  7. #7
    domanda banale...

    hai aggiornato i path nel file: ld.so.conf
    e fatto: ldconfig

  8. #8
    stefano.to
    Guest
    la chroot jail va.

    pippotest.sh:

    #!/bin/bash
    chroot /opt/suse9 /home/user1/go.exe

    però bisogna copiarci dentro quasi tutta la root perchè funzioni, anche /etc e connessi.

    E poi non si può avere riferimenti all'esterno della chroot jail mentre gira, tipo un file o una directory fuori dalla jail non esiste.

    Cioè
    chroot /opt/suse9 /home/user1/go.exe pippo.txt

    non vede "./pippo.txt" ma /opt/suse9/pippo.txt, cioè, qualunque cosa sopra /opt/suse9 durante l'esecuzione del chroot non esiste.

    ( Non vorrei scoprire l'acqua calda, ma per avere un ambiente stabile e meglio -- non -- usare le ultimissime release "stabili" ? )

  9. #9
    Originariamente inviato da stefano.to
    la chroot jail va.

    pippotest.sh:

    #!/bin/bash
    chroot /opt/suse9 /home/user1/go.exe

    però bisogna copiarci dentro quasi tutta la root perchè funzioni, anche /etc e connessi.

    E poi non si può avere riferimenti all'esterno della chroot jail mentre gira, tipo un file o una directory fuori dalla jail non esiste.

    Cioè
    chroot /opt/suse9 /home/user1/go.exe pippo.txt

    non vede "./pippo.txt" ma /opt/suse9/pippo.txt, cioè, qualunque cosa sopra /opt/suse9 durante l'esecuzione del chroot non esiste.
    E' proprio quello il concetto di chroot

  10. #10
    stefano.to
    Guest
    In realtà avrei trovato un modo per "importare dati" da fuori la chroot. Anche se sembra pazzesco funziona.

    es i miei dati sono in "/data"

    e poi uso il mio script più sopra

    pippotest.sh:
    -------------
    #!/bin/bash
    chroot /opt/suse9 /home/user1/go.exe $1

    (ovviamente go.exe è in /opt/suse9/home/user1/go.exe )

    allora io faccio: mount 127.0.0.1:/data /opt/suse9/data

    e posso eseguire

    ./pippotest.sh /data/pluto.txt

    perchè il mio programma "/opt/suse9/home/user1/go.exe"

    chiuso nella jail /opt/suse9, vede /opt/suse9/data come /data,

    e io su /opt/suse9/data ho montato via loopback proprio /data.


    Sembra abbastanza rapido, se non si tratta di molti file piccoli. Che ne dite?

    Vi assicuro che funziona !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.