以前下载安装 Common Lisp 的库都是手工进行的,其实 ASDF 有个扩展 ASDF-INSTALL 可以自动从网上下载并安装 Common Lisp 的库,而且可以自动解决依赖性问题。
首先最好安装 gpg,安装过程中会通过 gpg 来进行验证。当然你可以选择跳过检查,但是一定要装上,否则安装过程中会因为没有 gpg 而出错。
对 SBCL 的话只需要
(require 'asdf-install)
就可以开始使用了。比如要安装 memoize,
(asdf-install:install 'memorize)
ASDF-INSTALL 会首先问你安装到系统还是你的主目录下,之后它自动从网上找到这个库文件,然后下载、安装。安装过程中会提示是否进行验证,编译出错如何处理等问题。完成之后就一切 OK 了。
如果安装在主目录下的话,包文件是放在 ~/.sbcl/site 目录下,所有的 asd 文件都在 ~/.sbcl/systems 目录下建好软链接,把这个 systems 目录设置到 ASDF 的 central-registry 里就可以很方便的使用了。
现在有一个问题,在我这里 ASDF-INSTALL 对有些库并没有自动解决依赖性,不知道为什么。