CLSQL no CentOS de instalação
Pergunta
Eu quero ligar para o MySQL a partir de SBCL usando CLSQL.Eu carregados CLSQL usando quicklisp (ql:quickload 'clsql).No entanto, quando chamado (clsql:connect '(...) :banco de dados do tipo mysql), ele disse:
Não foi possível carregar bibliotecas estrangeiras "libmysqlclient", "libmysql".(pesquisado CLSQL-SYS:ESTRANGEIRO-BIBLIOTECA-PESQUISA-CAMINHOS).
Eu estou no CentOS, e basicamente o que eu quero fazer é
- Instalar o cliente do mysql cabeçalhos de desenvolvimento com o yum, assim UFFI pode encontrá-lo (o que eu não faço)
- após a instalação, ser capaz de se conectar ao servidor MySQL local (acho que depois de 1.está feito, ele poderia estar trabalhando automaticamente).
Eu estou usando atualmente:
- CentOS 5.7 Final (32 bits)
- SBCL 1.0.55
- Quicklisp beta
- repositórios yum:base, epel, extras, atualizações
Eu não apenas perguntar sobre como instalar o MySQL cabeçalhos de desenvolvimento no CentOS, porque isso resolveria apenas parte do meu problema, eu ainda preciso saber o que está faltando em minha máquina.Eu também não tenta construir libmysqlclient/libmysql a partir do código fonte, porque eu não sei se clsql seria capaz de, em seguida, para encontrá-lo ou não.Eu acho que não.
Peço desculpa se a minha pergunta, de alguma forma, perde o ponto, mas extenso curtindo " não produzir qualquer resultado.Se alguém me disseram que não foi possível instalar o cliente mysql cabeçalhos de desenvolvimento no CentOS, eu iria rir e dizer-lhes para usar o yum search, mas eu não poderia encontrá-lo nem com o yum nem on-line.
Eu sei a solução para o ubuntu (debian), porque há um cl-sql pacote e eu posso facilmente encontrar mysql cabeçalhos lá também, mas eu preciso dele no CentOS.
Obrigado antecipadamente.
Solução
De alguma forma, quando você tentar algo o tempo suficiente, isso será feito ;)
Aqui está o que eu fiz, se alguém precisa de uma resposta e se depara com esta questão:
(ql:quickload 'clsql)
;tell clsql where to search for mysql libs
(push #P"/usr/lib/mysql" CLSQL-SYS:*FOREIGN-LIBRARY-SEARCH-PATHS*)
;add mysql libs to clsql library path [apparent from code :]
(clsql:push-library-path "/usr/lib/mysql/")
;directly tell uffi to load mysqlclient shared library
(uffi:load-foreign-library "/usr/lib/mysql/libmysqlclient.so")
Claro, você pode substituir "/usr/lib/mysql" com um caminho diferente para o mysql bibliotecas, se necessário.