xgterm não consegue localizar a biblioteca instalada

1

Estou instalando IRAF em uma nova máquina e, ao tentar iniciar xgterm , recebo a mensagem de erro:

xgterm: error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory

No entanto, o pacote que contém esta biblioteca, libXmu6 , está instalado e atualizado.

Qualquer ajuda seria apreciada.

    
por user134711 01.04.2014 / 23:51

2 respostas

2

Há duas coisas que você pode tentar: (i) instalar o pacote -dev da biblioteca - por exemplo, sudo apt-get install libxmu-dev ou (ii) se você estiver usando uma instalação de 32bits do IRAF em uma máquina de 64bits, instale a biblioteca de 32bits, por exemplo. sudo apt-get install libxmu6:i386

    
por evandromr 18.04.2014 / 05:12
0

Se a instalação do pacote dev não funcionar, você pode ter que exportá-lo para a variável LD_LIBRARY_PATH.

Você pode encontrá-lo com find / -iname libXmu.so.6 -print 2>/dev/null , no meu caso estava em /usr/lib/x86_64-linux-gnu/libXmu.so.6

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXmu.so.6/lib:${LD_LIBRARY_PATH}

NB se a variável $LD_LIBRARY_PATH estiver vazia no início, você deve omitir o lib... em diante.

Isso não mudou a situação para mim e, no presente conselho , executei sudo apt-get install ia32-libs , que funcionou , até certo ponto, agora mudando minha mensagem de erro para

error while loading shared libraries: libXm.so.4: cannot open shared object file: No such file or directory

(isto é, número 4 não 6)

Isso pode ser instalado com sudo apt-get install libxm4 , o local resultante encontrado com find / -iname libXm.so.4 -print 2>/dev/null e adicionado ao $LD_LIBRARY_PATH com (por exemplo, para meu resultado)

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libXm.so.4/lib:${LD_LIBRARY_PATH}

Significado meu LD_LIBRARY_PATH foi /usr/lib/x86_64-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Isso não alterou a mensagem de erro solicitando libXm.so.4. Para esta biblioteca (que eu posso ver está lá com o locate ...) eu instalei o OpenMotif (não tenho certeza se isso é necessário)

sudo apt-get install libmotif-dev

E, finalmente, descobrir o requisito de pacote de 32 bits funcionará com as bibliotecas libXmu.so.6 após a instalação do ia32-libs , mas para o libXm.so.4 precisa de uma declaração explícita do status de 32 bits usando links no / usr pasta / lib / i386-linx-gnu. Isso ficou claro quando eu corri:

/usr/lib/i386-linux-gnu $ ls ../*/libXm*

(mostrando apenas ../i386-linux-gnu/libXmu.so.6 ), então criei um desses links com:

sudo ln -s /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4

Eu então consegui avançar para a próxima mensagem de erro (woohoo!) como mencionado em outras páginas de ajuda :

error while loading shared libraries: libXm.so.4: wrong ELF class: ELFCLASS64

... o que era estranho, já que é onde eu coloquei o link ... Esta página sugeriu uma solução alternativa, mas não consegui instalar o libx3motif.deb, pois amd64 quebra uma dependência (e eu não estava prestes a vá desinstalar componentes cruciais como esse por causa disso).

Esta resposta destaca a necessidade de ter o pacote de 32 bits mais cedo nos $LD_LIBRARY_PATH do que nos 64 bits .

export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Isso não mudou nada. Tentei copiar o arquivo para a pasta i386 e redirecionar o link

sudo cp /usr/lib/x86_64-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4.0.4
sudo ln -fs /usr/lib/i386-linux-gnu/libXm.so.4.0.4 /usr/lib/i386-linux-gnu/libXm.so.4

(O sinal -f força o redirecionamento, ou seja, você não precisa rm e refazer)

Eu lutei com isso por um pouco mais de tempo (não tenho certeza do que foi a última gota) até encontrar sucesso com isso na minha .bashrc:

export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu/libXm.so.4/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6.2.0/lib:/usr/lib/x86_64-linux-gnu/libXmu.so.6

Então, isso prova que você não precisa de pacotes de 32 bits instalados, apenas para apontar links simbólicos na pasta lib de 32 bits para os pacotes de 64 bits ... Desculpe o TMI, mas apenas pode ser útil para qualquer um que esteja preso no futuro

    
por Louis Maddox 14.11.2014 / 19:29