如何在不使用asdf-install的情况下安装常用Lisp包

6

我刚接触cl,学会了使用asdf-install安装包,但我不知道它是如何工作的,想知道如何手动安装包,这样我就能理解源代码根目录中文件的用途了,谢谢。

1个回答

21
简短回答:只需使用 quicklisp
详细回答:如果你想理解包或者更精确地说是ASDF系统的布局,那么这是个好主意。实际上,这并不难。
每个ASDF系统都应该有一个系统定义文件,后缀为.asd。该文件指定了系统中其他文件的名称、相对于.asd文件的路径、它们的类型(默认情况下为Lisp源代码)以及依赖关系。你的Lisp需要知道系统定义文件的位置。在ASDF中,有两种方式告诉Lisp:将存储文件或符号链接的目录添加到asdf:*central-registry*列表中,或设置特殊的配置文件(称为源注册表 - 更多信息请参见ASDF手册)。
现在,如果你想手动安装该系统,只需下载其源码,将其提取到某个目录中(例如/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启动类型(例如在.sbclrc中)将其添加到*central-registry*。现在,如果您想临时覆盖此目录中链接的某些系统,例如使用新版本,您无需取消链接任何内容 - 只需将替代系统的路径推送到*central-registry*即可。

Quicklisp为您完成了所有这些操作并提供了更多功能...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接