Sabemos que o Linux é bem diferente do Windows. Aliás é dificil dizer o Linux, pois ele á apenas o kernel, o que temos de verdade são vaaárias distribuições: Ubuntu, Fedora, Mint, PCLinux, Mandriva, Debian etc, etc, etc…
Devido a esse fato, distribuir um programa em binário para distros Linux fica meio comprometido a falhar, a não ser que você compile para cada distro separadamente e disponibilize assim.
Em teste aqui em casa, compilei Prisma juntamente com mysqlclient lib e funcionou corretamente no meu Mint 17, mas bastou eu instalar em um desktop aqui com Mint 18 que a lib mysql não funcionou mais.
Deu um erro de incompatibilidade.
O que eu fiz para corrigir o erro? Recompilei apenas a lib mysql no pc com Mint 18 e funcionou Blz, depois de muito trabalho, é claro, para liberar o acesso remoto do MySQL (lado servidor).
Para liberar o acesso em outro computador que não seja o servidor eu já fiz um post tutorial, veja <aqui>
Agora vou explicar como compilar a biblioteca mysql Prisma no Linux
Baixe o source <aqui>
Para compilar no linux é necessário instalar o pacote essencial caso não tenha.
Mint, Ubuntu certamente terá, se não tiver (gcc, g++ etc) instale com o seguinte comando no terminal:
1 |
sudo apt-get install build-essential |
(o comando sudo pode mudar de acordo com a distro);
Para o mysql é necessário instalar os pacotes libmysqlclient.
Para isso abra o synaptic (gerenciador de pacotes deb) ou o gerenciador de aplicativos de sua distro e pesquise por “libmysqlclient” sem aspas.
O resultado provavelmente será:
libmysqlclient-dev e libmysqlclient18 (linux Mint17 – Ubuntu-14.04)
ou libmysqlclient-dev e libmysqlclient20 (linxu Mint18 – Ubuntu-16.04);
Instale esses dois pacotes e execute o script compila_mysql.sh
Lembre-se de dar premissão de execussão no terminal assim:
1 |
chmod +x compila_mysql.sh |
Se tudo der certo aparecerá a lib mysql.so e ela será instalada pelo proprio script.
Agora sim você poderá conectar um programa prisma com MySQL!!!
Falou, gente, é isso.
Att. Adalberto
Boa tarde Adalberto,
Tive um problema justamente com a libmysqlclient-dev
Tentei instalar em um Debian que tem o MariaDB instalado.
Quando fui instalar a libmysqlclient-dev o instalador disse que ia remover o MariaDB-server e tudo dele pra poder instalar a lib
Teremos uma solução?
root@3139723132:~# prisma extratocob.prisma
prisma: erro no carregamento do modulo ‘mysql’ do arquivo ‘/usr/local/lib/prisma/1.0/clib/mysql.so’:
/usr/local/lib/prisma/1.0/clib/mysql.so: wrong ELF class: ELFCLASS64
origem da execucao:
[C]: in ?
[C]: in funcao ‘inclua’
extratocob.prisma:13: in trecho de codigo principal
[C]: in ?
root@3139723132:~# apt-get install libmysqlclient-dev
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
The following package was automatically installed and is no longer required:
libopts25
Use ‘apt-get autoremove’ to remove it.
Os pacotes extra a seguir serão instalados:
libmysqlclient18 mysql-common zlib1g-dev
Os pacotes a seguir serão REMOVIDOS:
libmariadbclient18 mariadb-client-5.5 mariadb-client-core-5.5 mariadb-server mariadb-server-5.5
mariadb-server-core-5.5
Os NOVOS pacotes a seguir serão instalados:
libmysqlclient-dev zlib1g-dev
Os pacotes a seguir serão atualizados:
libmysqlclient18 mysql-common
2 pacotes atualizados, 2 pacotes novos instalados, 6 a serem removidos e 143 não atualizados.
É preciso baixar 1.893 kB de arquivos.
Depois desta operação, 98,1 MB de espaço em disco serão liberados.
Você quer continuar [S/n]?
Não desinstale não, faça o seguinte, instale o pacote correspondente ao mariadb usando o seguinte comando:
sudo apt-get install libmariadbclient-dev
Pelo que pesquisei a api é a mesma do mysql, então por lógica já poderá compilar tranquilamente usando o arquivo compila_mysql.sh.
Tenta e me retorna dizendo se deu certo. Ok.
Deu certo, ele pediu pra atualizar o BD mas funcionou!!! Obrigado.