Como devo corrigir bibliotecas que não podem ser encontradas devido à nomenclatura multiarquial?

2

Eu me deparei com esse problema algumas vezes agora. Eu tenho algum programa que está procurando por uma biblioteca e não pode encontrá-lo, mesmo que seja em /usr/lib/x86_64-linux-gnu .

Talvez seja uma falha na forma como o programa dependente foi escrito. Eu não sei muito sobre isso, mas eu esperaria que o programa dependente especificasse o nome da biblioteca e deixasse o sistema procurar uma lista de caminhos.

Alguém pode explicar brevemente como o Ubuntu espera que um programa com comportamento adequado procure por bibliotecas dinâmicas?

Como exemplo concreto, o último caso envolve a biblioteca libpcsclite.so . A documentação do Oracle sugere que o Java (o programa dependente) procurará em /usr/lib64 e /usr/local/lib64 em meu sistema - nenhum dos quais existe. Eu tive problemas semelhantes no passado com dependentes não-Java. Parte da minha pergunta é: por que um programa listaria locais de pesquisa como esse? Existe um mecanismo de pesquisa fornecido pelo Linux que deve ser usado em seu lugar?

Este é um problema com o Java, a ser corrigido usando sua propriedade do sistema sun.security.smartcardio.library , ou a pcsclite não suporta as convenções de nomenclatura de multi-arquitetura corretamente? Se este último, eu deveria estar criando links simbólicos manualmente, ou isso é algo como uma ferramenta como ldconfig deve corrigir?

    
por erickson 07.08.2013 / 20:51

1 resposta

0

Meu palpite é que o problema é que você está instalando pacotes fora do apt (apt-get). Use pacotes do Ubuntu (ppa se possível) ou se você estiver compilando pacotes, enquanto compila, use ./configure --help e especifique um caminho de biblioteca como parte de sua configuração.

Veja também:

link

link

Do segundo link:

CFLAGS="-I/path/to/your/headers" LDFLAGS="-L/path/to/your/lib" ./configure --blah

Se você precisar de mais ajuda, terá que ser mais específico em relação a "algum programa que está procurando por uma biblioteca e não consegue encontrá-la" - Que programa? Como você instalou? etc.

Para definir seu ambiente java, edite ~/.pam_environment , add:

export JAVA_HOME=/usr/java/<your version of java>
export PATH=${PATH}:${JAVA_HOME}/bin

Para todos os usuários (sistema), edite /etc/environment

Veja também: link

    
por Panther 07.08.2013 / 21:06