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 é

  1. Instalar o cliente do mysql cabeçalhos de desenvolvimento com o yum, assim UFFI pode encontrá-lo (o que eu não faço)
  2. 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.

Foi útil?

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.

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