Como posso encontrar qual versão do libmysqlclient está instalada no Centos?

4

Eu tenho um exe personalizado fornecido para mim, mas para instalá-lo eu preciso de uma versão mais antiga do libmysqlclient. Como posso verificar qual versão está instalada?

    
por blarg 07.02.2014 / 10:42

2 respostas

2

O pacote pode não estar instalado

Quando as pessoas lhe dão informações como essa, você precisa se certificar de qualificar o que realmente é. O nome libmysqlclient é o nome dos arquivos da biblioteca compartilhada que fazem parte deste pacote, mysql-libs , normalmente.

Você pode usar repoquery para procurar um pacote correspondente para iniciar:

$ repoquery --whatprovides *libmysqlclient*
mysql-libs-0:5.1.71-1.el6.x86_64
mysql-devel-0:5.1.71-1.el6.x86_64
mysql-libs-0:5.1.71-1.el6.i686
mysql-devel-0:5.1.71-1.el6.i686
abi-compliance-checker-0:1.99.8.5-1.el6.noarch

Se você entender como os pacotes são nomeados, os arquivos .so que são "bibliotecas" estão nos pacotes -libs com bastante frequência.

$ repoquery -l mysql-libs-0:5.1.71-1.el6.x86_64 | head -9
/etc/ld.so.conf.d/mysql-x86_64.conf
/etc/my.cnf
/usr/lib64/mysql
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient.so.16.0.0
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0
/usr/share/doc/mysql-libs-5.1.71
/usr/share/doc/mysql-libs-5.1.71/COPYING
...

Aqui você pode ver o arquivo sobre o qual está perguntando, libmysqlclient . Então você pode ver que este pacote em particular lhe forneceria .so.16 .

O pacote já está instalado

Se os arquivos já estivessem instalados no sistema e você soubesse que libmysqlclient era um arquivo, então você pode procurar no RPM por essa informação:

$ rpm -q --whatprovides /usr/lib64/mysql/libmysqlclient.so.16

Mas isso exigiria que você soubesse onde esse arquivo residia. Então, você pode usar yum para "pesquisar":

$ yum whatprovides "*libmysqlclient*"
    
por 07.02.2014 / 11:11
2

A maneira mais fácil é perguntar ao RPM qual versão é: rpm -q mysql-devel .

Você também pode usar yum info mysql-devel .

Se você precisar da versão ABI da própria biblioteca, precisará dizer algo como ls /usr/lib64/mysql/libmysqlclient* . O CentOS 6 envia as bibliotecas ABI versão 16, por exemplo. Use lib em vez de lib64 para um sistema de 32 bits.

    
por 07.02.2014 / 10:49