Metodi di pagamento Abuse

Ошибка errore durante il caricamento delle librerie condivise

21.02.2024, 22:45

Gli utenti di Linux si imbattono spesso nell'errore di caricamento delle librerie condivise durante l'esecuzione dei programmi, ed è anche familiare a molti programmatori e a chiunque voglia compilare software sul proprio sistema. Letteralmente significa che c'è un problema durante il caricamento delle librerie condivise.

Ulteriori informazioni sull'errore Errore durante il caricamento delle librerie condivise

L'errore"errore durante il caricamento delle librerie condivise" significa che durante l'esecuzione di un programma o di uno script, il sistema operativo non è riuscito a trovare e caricare una o più librerie necessarie per il funzionamento del programma. Si tratta di un problema comune nei sistemi operativi di tipo UNIX. Quando un programma viene compilato, può fare riferimento a varie librerie esterne che dovrebbero essere disponibili in fase di esecuzione. Se queste librerie mancano o non sono disponibili, si verifica un errore durante il caricamento delle librerie condivise.

Anche se non compilate i vostri programmi, potreste vedere questo errore: directory_name: cannot open shared object file: No such file or directory molto spesso quando installate nuovi programmi non attraverso il gestore di pacchetti o programmi destinati a un'altra distribuzione. Si verifica perché il sistema non riesce a trovare la libreria. Perché non viene trovata e caricata?

Per diversi motivi, di solito si tratta di una libreria che:

  • non è installata nel sistema;
  • è installata, ma si trova nel posto sbagliato;
  • è installata correttamente, ma ha una versione sbagliata.

Per risolvere il problema, ci faremo guidare da questi motivi e cercheremo di risolverli.

Come risolvere l'errore di caricamento delle librerie condivise?

Consideriamo quindi alcuni esempi specifici di risoluzione di questo problema in base ai motivi indicati nel paragrafo precedente.

La libreria non è installata

Non c'è nulla di complicato in questo caso e tutto è abbastanza chiaro: la libreria non è semplicemente presente nel sistema, ecco perché si ottiene questo errore. Per questo motivo è necessario trovare il pacchetto della libreria con l'aiuto di un gestore di pacchetti e installarlo. Di solito, i pacchetti con le librerie si chiamano come le librerie stesse con il prefisso lib.

Se ci manca la libreria libfuse2.so, possiamo trovarla in Ubuntu con questo comando:

$ sudo apt search libfuse2

Quindi l'unica cosa che resta da fare è installarla:

$ sudo apt install libfuse2

Quando si deve compilare un programma dai sorgenti, è necessario installare anche i file di intestazione:

$ sudo apt install libfuse-dev

E così per qualsiasi libreria. Ma questo non funziona sempre.

La libreria è nel catalogo sbagliato

In pratica, ci sono casi in cui la libreria viene installata, ma l'errore persiste e non permette agli utenti di interagire normalmente con il sistema. Cosa fare in questi casi? Innanzitutto, controllare il boot loader di Linux che non riesce a trovare la libreria. La ricerca deve essere eseguita nelle directory specificate nei file di configurazione /etc/ld.conf.d/. Di norma, queste sono /usr/lib, /lib, /usr/lib64, /lib64. Se la libreria è installata in una directory diversa, il problema è ovviamente alla radice.

È possibile vedere quali librerie sono attualmente disponibili per il caricatore utilizzando il comando:

$ ldconfig -p

Trovare la posizione della libreria utilizzando il comando locate. Ad esempio, siamo interessati alla libreria librtfreader.so:

$ locate librtfreader

Quando conosciamo la posizione di /opt/kingsoft/wps-office/office6/, dobbiamo fare in modo che il caricatore possa rilevare la libreria. Aggiungiamo il percorso /etc/ld.so.conf.d/ al file di configurazione o alla variabile LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=/opt/kingsoft/wps-office/office6/

È possibile installare con qualsiasi libreria che richiami l'errore. Si può anche prendere la strada meno complicata di creare un collegamento simbolico alla libreria corretta nella directory corretta:

ln -s /opt/kingsoft/wps-office/office6/librtfreader.so /usr/lib/librtfreader.so

Versione di libreria non valida

Questo accade di solito quando si utilizzano programmi per una distribuzione che non è stata installata. Ogni libreria ha una versione aggiuntiva, scritta dopo l'estensione .so. Ad esempio, libav.so.1. Il numero di versione cambia ogni volta che una libreria viene aggiornata.

Capita spesso che in una distribuzione un programma venga compilato con una dipendenza da una libreria, come libc .so.1, mentre in un'altra distribuzione c'è solo libc.so.2. Nella maggior parte dei casi le differenze sono minime e il programma può funzionare con la seconda versione della libreria. Quindi possiamo semplicemente creare un collegamento simbolico ad essa.

Ad esempio, non esiste la libreria libusb-1.0.so.1. Ma esiste libusb-1.0.so.0.1 e possiamo usarla:

Per farlo, basta creare un collegamento simbolico alla libreria:

$ sudo ln -s /usr/lib/libusb-1.0.so.0.1 /usr/lib/libusb-1.0.so.1

Spesso il programma non si accorgerà della sostituzione e funzionerà. Come soluzione intelligente, cercate di trovare su Internet la versione corretta della libreria per la vostra architettura e collocatela nella cartella /usr/lib/ o /usr/lib64/. In seguito, però, è auspicabile aggiornare la cache:

$ sudo ldconfig

Se il problema persiste dopo questi passaggi, si consiglia di consultare la documentazione del programma o del sistema operativo per informazioni più dettagliate sulle versioni delle librerie necessarie e su come installarle.