PQ o Psql ta buscando a bendita libreadline.so.6?? [RESOLVIDO]

1. PQ o Psql ta buscando a bendita libreadline.so.6?? [RESOLVIDO]

vinny
vinnyparker

(usa Linux Mint)

Enviado em 28/08/2012 - 17:19h

Ola galera, to aqui de boa usando fedora 16 verne x_64.
To executando um comando via psql mas ta me retornando um erro.
O erro eh o seguinte:


ERROR: ld.so: object '/lib/libreadline.so.6' from LD_PRELOAD cannot be preloaded: ignored.


Eu dei um ls -l |grep libread
e retornou o seguinte:


 ls -l | grep libreadline
lrwxrwxrwx. 1 root root 23 Ago 28 09:45 libreadline.so.6 -> /lib/libreadline.so.6.2


to usando postgresql 9.1
Alguem sabe como eu concerto isso? desde ja agradeço


  


2. Re: PQ o Psql ta buscando a bendita libreadline.so.6?? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 28/08/2012 - 17:44h

Descubra a que pacote este arquivo pertence com:
 
#rpm -qf /lib/libreadline.so.6.2

E tente reinstalar o mesmo, mas verifique antes se nenhuma atualização ficou incompleta ou é o motivo do erro (no log do yum em: /var/log/yum.log).


3. Re: PQ o Psql ta buscando a bendita libreadline.so.6?? [RESOLVIDO]

vinny
vinnyparker

(usa Linux Mint)

Enviado em 29/08/2012 - 08:46h


[root@vinny-notebook vinny]# rpm -qf /lib/libreadline.so.6.2
readline-6.2-2.fc16.i686

nao houve herro na reinstalação e continua sem funcionar...


4. Solução do bendito problema

Wagner
wlucena

(usa Outra)

Enviado em 14/12/2012 - 11:03h

O erro ocorre porque o comando PSQL na verdade é uma espécie de shell script que configura uma variável de ambiente para uma lib 32 ou 64 bits conforme versão do SO para somente depois chamar o executável.

Ambiente com problema:
SO: Red Hat Linux 6.3 - 64 bits
Postgres: 9.1.3.1

Causa:
Até a versão anterior, o SO instalava apenas uma das libs de acordo com a versão do SO. A partir da versão 6.3, o SO passou a instalar as duas libs.
Como o psql encontra as duas, devido a ordem estabelecida no psql, ele configura a variável com a lib da versão de 32 bits em um ambiente 64 bits.

Solução:
Editar (vi) o psql e comentar as linhas que fazem referência com a configuração da variável de ambiente para 32 bits.
#!/bin/bash

# If there's an OS supplied version of libreadline, try to make use of it,
# as it's more reliable than libedit, which we link with.
PLL=""
if [ -f /lib64/libreadline.so.6 ];
then
PLL=/lib64/libreadline.so.6
fi
if [ -f /lib64/libreadline.so.5 ];
then
PLL=$PLL:/lib64/libreadline.so.5
fi
#if [ -f /lib/libreadline.so.6 ];
#then
# PLL=$PLL:/lib/libreadline.so.6
#fi
if [ -f /lib/libreadline.so.5 ];
then
PLL=$PLL:/lib/libreadline.so.5
fi
# Get the PG bin directory path relative to psql caller script.
PG_BIN_PATH=`dirname "$0"`

if [ -z "$PLL" ];
then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PG_BIN_PATH/../lib "$PG_BIN_PATH/psql.bin" "$@"
else
LD_PRELOAD=$PLL LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PG_BIN_PATH/../lib "$PG_BIN_PATH/psql.bin" "$@"
fi

---------------------------------------------------------------
CRÉDITOS DA SOLUÇÃO: Equipe de SO/Rede e BD de onde trabalho.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts