Erro ao carregar bibliotecas compartilhadas: libicuuc.so.59: não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório

9

Após a atualização com pacman -Syuq :

# pacman -Sc

pacman: error while loading shared libraries: libicuuc.so.59: cannot open shared object file: No such file or directory

# find / -name libicuuc.so.* 2>/dev/null
/usr/lib/libicuuc.so.60.1
/usr/lib/libicuuc.so.60

Arch Linux em uma versão Pi 1:

# uname -an
4.9.62-1-ARCH #1 SMP Fri Nov 17 13:42:55 UTC 2017 armv6l GNU/Linux
    
por frustratedMartian 28.11.2017 / 12:19

7 respostas

18

As soluções anteriormente propostas não eram relevantes ou não funcionavam para mim. Por algum motivo, a atualização do pacote icu de 59.1-2 para 60.1-1 causou a quebra de ligação e muitos programas (incluindo o pacman) falharam com esse erro depois. Não interrompi o pacman do meu lado.

Se você ainda tiver o pacote anterior em seu cache, tente isso, o que funcionou para mim:

  1. Localize a versão em cache do pacote (por exemplo, a minha foi /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz ).
  2. Extraia: mkdir -p ~/pkg/tmp && tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
  3. Copie libs para sua pasta lib: sudo cp ~/pkg/tmp/usr/lib/libicu*.59 /usr/lib/
  4. Prossiga com a atualização: sudo pacman -Syyu
  5. Agora você pode remover os arquivos que acabou de extrair.
por 02.12.2017 / 03:32
2

Você também pode usar a variável LD_LIBRARY_PATH para carregar as bibliotecas do icu de um local diferente. Desta forma, você pode evitar qualquer cópia para / usr / lib:

$ mkdir -p ~/pkg/tmp
$ tar xJvf /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz -C ~/pkg/tmp
$ su
# LD_LIBRARY_PATH='pwd'/pkg/tmp pacman -U /var/cache/pacman/pkg/icu-59.1-2-x86_64.pkg.tar.xz
    
por 12.01.2018 / 23:35
1

Eu pesquisei o problema e encontrei o /var/log/pacman.log . Eu li o log e descobri que o problema era:

...
[2017-11-28 04:34] [ALPM] upgraded libmariadbclient (10.1.28-1 -> 10.1.29-1)
[2017-11-28 04:34] [ALPM] transaction interrupted

A atualização foi interrompida, daí o problema de ligação.

Eu então baixei o firmware de aqui . Eu extraí a biblioteca ausente:

$ gunzip ArchLinuxARM-rpi-latest.tar.gz
$ tar -tf ArchLinuxARM-rpi-latest.tar |grep libicuuc.so.59
./usr/lib/libicuuc.so.59.1
./usr/lib/libicuuc.so.59
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59.1
$ tar -xf ArchLinuxARM-rpi-latest.tar ./usr/lib/libicuuc.so.59

libicuuc.so.59 foi um link simbólico para libicuuc.so.59.1 , por isso movi libicuuc.so.59.1 para /usr/lib/libicuuc.so.59 .

Em execução pacman , recebi o erro de que libicudata.so.59 estava ausente. Eu extraí a biblioteca ausente para /usr/lib e pacman estava funcionando:).

Em seguida, atualizei o sistema com pacman -Syuq e verifiquei com ldd /usr/bin/pacman se todas as bibliotecas estavam presentes. Mudei as bibliotecas v59 de /usr/lib e verifiquei que pacman estava funcionando.

Reinicie com os dedos cruzados ... com sucesso !!!

pacman -Sc e vá para a cama com um sorriso:)

    
por 28.11.2017 / 22:09
0

Caso você tenha um executável que precise dessa versão específica da biblioteca (como aconteceu no meu caso), existe um pacote aur para essa versão específica.

    
por 06.12.2017 / 03:16
0

Resolvido o problema com pacman -Sc seguido por pacman -Syyu Não tenho certeza porque isso resolveu o problema.

    
por 17.08.2018 / 17:05
0

No seu sistema, o lib32-icu não está instalado. Apenas instale o lib32-icu do pacman e todos os problemas serão resolvidos.

sudo pacman -S lib32-icu
    
por 23.09.2018 / 05:20
0

Eu resolvi esse problema com a ajuda do seguinte link; aqui

De acordo com este artigo, a desclassificação é uma má idéia e o que você provavelmente deve fazer é reconstruir o pacote que usa a dependência ausente acima. O downgrade pode afetar vários pacotes.

    
por 14.11.2018 / 18:12