在CentOS上安装CLSQL

时间:2012-02-24 12:13:37

标签: mysql lisp centos sbcl clsql

我想使用CLSQL从SBCL连接到MySQL。我使用quicklisp(ql:quickload'clsql)加载了CLSQL。但是,在调用时(clsql:connect'(...):database-type:mysql),它说:

无法加载外部库“libmysqlclient”,“libmysql”。 (搜索了CLSQL-SYS: FOREIGN-LIBRARY-SEARCH-PATHS )。

我在CentOS上,基本上我想做的是

  1. 使用yum安装mysql客户端开发头文件,因此UFFI可以找到它(我没有做到)
  2. 安装后,能够连接到本地MySQL服务器(我认为1.完成后,它可以自动工作)。
  3. 我目前正在使用:

    • CentOS 5.7 Final(32位)
    • SBCL 1.0.55
    • Quicklisp beta
    • yum存储库:base,epel,extras,updates

    我不只是询问如何在CentOS上安装MySQL开发头文件,因为这只能解决我的部分问题,我仍然需要知道我的机器上缺少什么。我也没有尝试从源代码构建libmysqlclient / libmysql,因为我不知道clsql是否能够找到它。我想不是。

    如果我的问题不知何故错过了这一点,我真的很抱歉,但广泛的谷歌搜索没有产生任何结果。如果有人告诉我他们无法在CentOS上安装mysql客户端开发头文件,我会嘲笑他们并告诉他们使用yum搜索,但我无法在网上找到yum。

    我知道ubuntu(和debian)的解决方案,因为有一个cl-sql包,我也可以在那里轻松找到mysql头,但我需要它在CentOS上。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

不知何故,当你尝试足够长的时间时,它就会完成;)

如果有人需要答案并偶然发现这个问题,我的所作所为:

(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")

当然,您可以替换" / usr / lib / mysql"如果需要,可以使用不同的mysql库路径。