functional-programming - 如何通过 QuickLisp 将安装包安装到 SBCL 的系统目录中?

标签 functional-programming lisp common-lisp sbcl quicklisp

我使用 Quicklisp 作为 SBCL 的包管理工具。

但是,有时我发现通过ql:quickload将软件包安装到当前用户的HOME目录不是很方便。 (例如,如果我使用 (ql:quickload "xmls") 安装 xml,其他用户就无法使用它。)

更糟糕的是,我想将 Lisp 代码作为脚本运行。所以当我使用quicklisp安装的包时,我需要不舒服地添加该包的绝对路径,例如:

#!/usr/bin/sbcl --script
(require 'xmls "..../quicklisp/dists/quicklisp/software/xmls-1.4/xmls")

如果我使用 (require 'xmls),编译器将无法工作,因为如果我使用 --script 选项,它无法找到该包。

有谁知道如何解决这个问题,让我可以同时使用--scriptrequire(不需要添加绝对路径)?

最佳答案

我不知道有什么好的办法来解决这个问题。我使用的解决方案是不使用 Common Lisp 编写脚本;我通常编写在 CL session 中交互使用的应用程序。当我确实想从命令行运行东西时,我使用 buildapp并使用 ql:write-asdf-manifest-file 创建一个文件以传递给 buildapp 的 --manifest-file

有时我希望有一个更好的解决方案,但这可能需要某人(希望不是我)做一些工作。

关于functional-programming - 如何通过 QuickLisp 将安装包安装到 SBCL 的系统目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540371/

相关文章:

lisp - 格式化有条件的内部迭代

lisp - (a (b . c) d) 在方框符号中的正确表示是什么?

scheme - 为什么 make-counter 过程包含两个 lambda 定义?

hash - 在 Common Lisp 中使用字符串对象作为哈希键

ios - 应用函数时 Swift exc_bad_access

javascript - Javascript "delay evaluation"想要避免急切评估时如何运行?

java - 将命令式 Java 转换为函数式 Java(游戏)

宏与函数

lisp - 使用普通 lisp 中的另一个定义变量定义 plist 的键

scala - 使用无标签最终更改为错误的优雅方式