Pergunta

O que é o melhor lugar para configurar aplicação variável específica LD_LIBRARY_PATH no Solaris? Como funciona

LD_LIBRARY_PATH

trabalho variável?

Atualmente, configurá-lo em .kshrc, mas diferentes aplicações precisam de diferentes versões do quadro de mensagens, mas esses aplicativos são executados sob o mesmo uso e, portanto, eles precisam LD_LIBRARY_PATH diferente, por isso, na sua opinião, qual é o melhor lugar para definir esta variável ?

Basicamente eu estou tentando descobrir como fazer esta parte do caminho variável do aplicativo em vez de específico ambiente do usuário.

Foi útil?

Solução

Normalmente eu teria apenas um shell script que inicia o aplicativo. No script shell gostaria de definir LD_LIBRARY_PATH para o que eu preciso que ele seja para esse aplicativo, em seguida, ter o script iniciar esse aplicativo. Fazê-lo dessa maneira deve fazer com que o caminho a ser definido apenas para esse aplicativo.

Outras dicas

Você pode encontrar uma descrição formal de LD_LIBRARY_PATH na página man "ld.so.1", ou seja run "homem ld.so.1". Ele também descreve algumas outras variáveis ??que são honrados pelo vinculador em tempo de execução.

Além de LD_LIBRARY_PATH, executáveis ??e bibliotecas compartilhadas também pode ter um built-in caminho de pesquisa para bibliotecas. Se você estiver executando um aplicativo que você ligou, você pode usar a opção -R do ld para definir o construída em caminho (ambos Sun CC e gcc tem opções para fazer a mesma coisa). Isso pode permitir que você evite usar LD_LIBRARY_PATH em primeiro lugar.

Vladr, Alanc está correto.

Não é recomendado para LD_LIBRARY_PATH conjunto no Solaris. Em tudo.

Se você precisa assar um RUNPATH específica para a sua biblioteca ou executável, então você deve usar o sinalizador -R para o vinculador. Se construir com gcc, em seguida, uso -Wl, rPath (eu acho).

Se você precisa fazer isso para uma etapa de pós-construção (por exemplo, porque você está faltando fonte de recompilar), então elfedit (1) irá ajudá-lo muito. Ele está documentado na página de manual, e também em Linker Guia + bibliotecas em http: // docs.oracle.com/cd/E26502_01/html/E26507/index.html

A resposta crle é mais correta. No Solaris, LD_LIBRARY_PATH não deve ser utilizado. Use crle vez. Para visualizar os caminhos atuais, basta executar "crle" por si só. Para atualizar a lista, use crle -u -l /path/to/your/lib/directory. O -u é necessário para escrever as alterações na configuração do sistema, caso contrário, a mudança será temporária. Veja a página man para mais opções.

Apenas encontrou um caso que LD_LIBRARY_PATH mundial não terá efeito, eu tive que quebrar um script e conjunto LD_LIBRARY_PATH antes da aplicação. crle é uma solução global bom se você instalou um monte de libs em / opt / csw / lib, via pkgutil de Blastwave.

Você pode verificar o seu .profile ou .profile.user file.There será ser uma entrada comentou para ele é não recomendado .Ele para ser usado desde a sua broken.You deve construir os binários, passando os valores para bandeiras em vez de usar o variável.

Você pode usar o comando crle:

crle -l / path / to / your / lib / arquivo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top