如何在没有asdf-install的情况下为常见的lisp安装新软件包

时间:2011-12-09 04:52:00

标签: common-lisp asdf

我是cl的新手,我刚学会使用asdf-install安装软件包,但我不知道它是如何工作的,我不知道如何可以手动安装软件包,然后我就能理解文件的使用了在源代码的根目录中,谢谢。

1 个答案:

答案 0 :(得分:18)

简短回答:只需使用quicklisp

答案很长:如果你想了解这个包,或者更确切地说 - ASDF系统是如何布局的,这是一个好主意。实际上,这没什么难的。

每个ASDF系统都应该有一个扩展名为.asd的系统定义文件。此文件命名系统的其他文件及其相对于.asd文件的路径,其类型(默认情况下为:lisp源代码)和依赖项。您的Lisp应该知道在哪里可以找到系统定义文件。在ASDF中,有两种方法可以通知Lisp:将存储文件或符号链接的目录添加到asdf:*central-registry*列表或设置特殊配置文件(称为source-registry - 更多关于ASDF manual)。

现在,如果您想手动安装系统,只需下载其源代码,将其解压缩到某个目录(例如/home/user/lib/lisp/中 - 您可能会/home/user/lib/lisp/cl-ppcre-2.3.1/,其中有cl-ppcre.asd )。让你的Lisp只是(push "/home/user/lib/lisp/cl-ppcre-2.3.1/" asdf:*central-registry*)找到它(并且不要忘记尾随斜杠 - 它是必需的),然后你可以用(asdf:oos 'asdf:load-op :cl-ppcre)加载系统。

您还可以设置一个特殊的目录,您可以在其中对现有系统进行符号链接,例如/home/user/.lisp/,并将其添加到Lisp启动类型的*central-registry*(例如,在.sbclrc中)。现在,如果您想暂时覆盖此目录中链接的某些系统,例如,使用较新的版本,则无需取消链接任何内容 - 只需将备用系统的路径推送到*central-registry*

Quicklisp为您完成所有这些以及更多......