GNU/Linux >> Linux Esercitazione >  >> Arch Linux

Come risolvere l'errore "pacman:errore durante il caricamento delle librerie condivise" in Arch Linux

Negli ultimi giorni ho testato ampiamente PIP e Pipenv strumenti nel mio sistema Arch Linux. Durante il test di questi strumenti, ho dovuto reinstallare e fare il downgrade dei pacchetti Python2.x, Python 3.x e alcuni altri pacchetti di dipendenze Python molte volte. Ad un certo punto, ha rotto il mio Arch Linux e pacman ha smesso di funzionare. Ogni volta che eseguo pacman, viene visualizzato un errore che dice "pacman:errore durante il caricamento delle librerie condivise:libidn2.so.0:impossibile aprire il file oggetto condiviso:nessun file o directory del genere" .

pacman:errore durante il caricamento delle librerie condivise:libidn2.so.0:impossibile aprire il file oggetto condiviso:nessun file o directory di questo tipo

Non solo pacman, anche altre applicazioni, come pacaur, yaourt, packer, virtualbox e trasmissione, ecc., hanno smesso di funzionare. Quando provo ad aprire una di queste applicazioni, continuo a ricevere questo messaggio:"errore durante il caricamento delle librerie condivise:libidn2.so.0:impossibile aprire il file oggetto condiviso". È probabile che io possa disinstallare qualcosa che non riuscivo a ricordare. Con mia sfortuna, era il mio sistema personale e non voglio reinstallarlo perché ha molte applicazioni. Quindi, la reinstallazione del sistema operativo e di tutte le applicazioni potrebbe richiedere due o più giorni. Dopo aver cercato vigorosamente su Arch Linux wiki e altri forum Linux come un pazzo, sono finalmente riuscito a risolverlo. Se dovessi riscontrare un problema del genere, non cercare da nessuna parte, scarica il file sorgente e copia i file mancanti in /usr/lib/ cartella. Per quanto ho cercato sul web, questo metodo sembra molto più semplice finora. Continua a leggere per sapere come ho corretto questo errore.

Corretto l'errore "pacman:errore durante il caricamento delle librerie condivise" in Arch Linux

Come ho già detto, continuavo a ricevere questo errore - "pacman:errore durante il caricamento delle librerie condivise:libidn2.so.0:impossibile aprire il file oggetto condiviso:nessun file o directory" quando eseguo il comando pacman o qualsiasi supporto AUR come pacaur, packer, yaourt e non riesco nemmeno ad aprire l'applicazione VirtualBox e il client di trasmissione. Quindi, il vero problema qui è il file "libidn2.so.0" è scomparso. Dobbiamo scoprirlo!

$ ls -la /usr/lib/libidn*

Esempio di output dal mio sistema Arch Linux:

lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so -> libidnkitlite.so.1.0.2
lrwxrwxrwx 1 root root 22 Jul 22 2013 /usr/lib/libidnkitlite.so.1 -> libidnkitlite.so.1.0.2
-rw-r--r-- 1 root root 276352 Jul 22 2013 /usr/lib/libidnkitlite.so.1.0.2
lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so -> libidnkit.so.1.0.2
lrwxrwxrwx 1 root root 18 Jul 22 2013 /usr/lib/libidnkit.so.1 -> libidnkit.so.1.0.2
-rw-r--r-- 1 root root 282368 Jul 22 2013 /usr/lib/libidnkit.so.1.0.2
lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so -> libidn.so.11.6.16
lrwxrwxrwx 1 root root 17 Aug 15 19:00 /usr/lib/libidn.so.11 -> libidn.so.11.6.16
-rwxr-xr-x 1 root root 210872 Aug 15 19:00 /usr/lib/libidn.so.11.6.16

Avevo "libidn.so", ma non riesco a trovare "libidn2.so.0". Poiché pacman e qualsiasi altro gestore di pacchetti non hanno funzionato, non c'è modo di installare, aggiornare o downgrade dei pacchetti dal repository ufficiale o dalla cache locale. Quindi, ho pensato che l'unico modo potesse essere scaricare il pacchetto con il file mancante da Internet, estrarlo e infine copiare i file mancanti nella directory /usr/lib/. Fammi creare una directory per salvare il file tar di libdin2:

$ mkdir libidn
$ cd libidn

Trova e scarica l'ultima versione di questo pacchetto. Una rapida ricerca su Google mi ha portato qui . Estrai il file:

$ tar xf libidn2-2.0.4-2-x86_64.pkg.tar.xz

Il comando precedente ha estratto il contenuto del file in una directory denominata "usr". Vai alla cartella usr/lib:(Nota - È usr/lib , non /usr/lib )

$ cd usr/lib

Infine copia il file mancante, nel nostro caso è libidn2.so.0 , nella directory /usr/lib/ del tuo sistema Arch Linux.

$ sudo cp libidn2.so.0 /usr/lib/

Quindi, ho corso:

$ sudo pacman -syu

Aggiorna Arch Linux

Ecco! Pacman ora funziona!! Ops! Oh no, aspetta... Non ha funzionato. Ho ricevuto questo errore dopo pochi minuti.

[....]
(511/511) checking keys in keyring [######################] 100%
(511/511) checking package integrity [######################] 100%
(511/511) loading package files [######################] 100%
(511/511) checking for file conflicts [######################] 100%
error: failed to commit transaction (conflicting files)
libidn2: /usr/lib/libidn2.so.0 exists in filesystem
Errors occurred, no packages were upgraded.

Per risolvere questo problema, ho eseguito:

$ sudo pacman -S libidn2 --force

Quindi, ho provato di nuovo ad aggiornare:

$ sudo pacman -Syu

Fisso!! Tutto bene adesso. Quindi, se avete mai riscontrato un problema come "errore durante il caricamento delle librerie condivise:.. impossibile aprire il file oggetto condiviso:nessun file o directory del genere" , un modo per risolvere questo problema è trovare il pacchetto che contiene i file mancanti, scaricare l'ultima versione di quel pacchetto, estrarlo e copiare i file mancanti in /usr/lib/ directory. Naturalmente, potrebbero esserci molti modi per risolvere questo tipo di problemi. Ma questa è l'unica soluzione funzionante che sono riuscito a trovare e la trovo molto più semplice e veloce. Questo trucco potrebbe funzionare anche su altre distribuzioni Linux.

Lettura correlata:

  • Come ripristinare Arch Linux rotto allo stato di lavoro precedente
  • Come correggere l'errore "impossibile bloccare il database" in Arch Linux
  • Come correggere l'errore "pacchetto non valido o danneggiato (firma PGP)" in Arch Linux
  • Come risolvere il problema "Avvio dell'aggiornamento completo del sistema... non c'è niente da fare" Problema in Arch Linux
  • Come risolvere "errore:impossibile eseguire il commit della transazione (file in conflitto)" in Arch Linux

Arch Linux
  1. Come installare MariaDB su Arch Linux / Manjaro Linux

  2. Come risolvere l'errore "Avviso:il locale è più recente della comunità" in Arch Linux

  3. Come correggere l'errore "pacchetto non valido o danneggiato (firma PGP)" in Arch Linux

  4. Linux:come passare da Arch Linux a Lts Kernel?

  5. rpm:errore durante il caricamento delle librerie condivise:intestazione ELF non valida

Come installare MATE Desktop su Arch Linux

Come risolvere l'errore "lavoro per il servizio netctl non riuscito" in Arch Linux

Come regolare la dimensione della partizione di root su Linux Live Arch

Come elencare le librerie condivise utilizzate dagli eseguibili in Linux

Come correggere l'errore di installazione di Python durante il caricamento delle librerie condivise:libssl.so.1.0.0? [Risolto]

Come reimpostare la password di root dimenticata in Arch Linux