upsampling (universo LMS/Squeezelite/Squeezeplay)

Visualizzazione dei risultati da 1 a 10 su 874

Threaded View

Messaggio precedente Messaggio precedente   Prossimo messaggio Prossimo messaggio
  1. #11
    tebibyte L'avatar di UnixMan
    Registrato
    Sep 2013
    Messaggi
    2,529
    configurazione

    Predefinito

    Originariamente inviato da marcoc1712
    che NON consente la presenza contemporane di due versioni diverse di un oggetto, quale esso sia.
    non è propriamente così.

    Per motivi che dovrebbero essere evidenti normalmente si vuole evitare che ciò accada, ma non è affatto impossibile "far convivere" cose diverse, se proprio non se ne può fare a meno.

    Ci sono molti modi per farlo. Le variabili di ambiente sono definite e (ri)definibili per il singolo processo; per usare un eseguibile piuttosto che un altro basta ridefinire $PATH (o avviare esplicitamente una dato file con il path completo); per fare una cosa analoga con le librerie dinamiche, il dynamic linker utilizza la variabile di ambiente "LD_LIBRARY_PATH"; esistono inoltre meccanismi potenti (e pericolosi...) quali quello del preload (variabile "LD_PRELOAD"), che consente addirittura di far usare ad un eseguibile una libreria completamente diversa (purché ovviamente "compatibile" a livello di API) da quella per la quale è stato compilato:

    Modifying a Dynamic Library Without Changing the Source Code | Linux Journal

    A Simple LD_PRELOAD Tutorial - good coders code, great coders reuse

    Ad es. (grazie all'esistenza di "libsoxr-lsr") con questo trucco puoi far usare libsoxr a qualsiasi programma che è stato scritto e compilato per utilizzare invece la libsamplerate! (come feci a suo tempo per mpd, quando questo ancora non supportava nativamente libsoxr).

    Oppure ancora, nei casi più "estremi", si può addirittura creare una "chroot", cioè mettere "un intero sistema" (solo quel che serve...), con il suo assortimento di librerie e binari vari, "all'interno" di un altro.

    Pensa che, al lavoro, per mantenere la compatibilità con del vecchio software "custom" che sarebbe stato troppo laborioso (e materialmente quasi impossibile) "portare" su versioni aggiornate del sistema, in alcune macchine ho una intera (vecchissima) distribuzione Debian con tutto il relativo software che "gira dentro" ad un sistema "up-to-date"!

    (e no, non sto parlando di una macchina virtuale, con il relativo overhead: con una chroot in sostanza si hanno più "sistemi" diversi che condividono lo stesso kernel, senza alcun overhead!).

    Originariamente inviato da marcoc1712
    Il fatto è che linux è sistema centrico: l'importante è che vada quella versione di sox con quelle librerie su quel sistema, che le applicazioni poi non vadano più è un effetto collaterale...
    il fatto è che di norma tutte le applicazioni fanno parte del sistema stesso, e sono distribuite con esso!

    I problemi nascono quando si vogliono utilizzare applicazioni di terze parti che vogliono fare le cose a modo loro...

    Originariamente inviato da marcoc1712
    p.s. cosa succede se SOX e, poniamo, FFMPEG richiedono due diverse verisoni diverse di, poniamo, libAV ?
    di norma semplicemente non succede, proprio perché per una data distribuzione di Linux tanto l'uno quanto l'altro sono compilati con la stessa versione di libAV. Stesso dicasi per tutto il resto. Per questo si chiamano "distribuzioni".

    Non di meno, in generale non è affatto impossibile avere versioni diverse di una libreria che convivono tranquillamente (senza bisogno di "trucchi"). Dipende però da come è fatta la libreria in questione (se supporta il versioning), e da come sono fatti i relativi pacchetti.
    Ultima modifica di UnixMan : 09-05-2016 a 16:55
    Ciao, Paolo.

    «Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee.»

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022