管理Common Lisp中的依赖关系

Mad*_*ist 1 lisp python common-lisp dependency-management quicklisp

我从Python世界来到Lisp,它基本上运行virtualenvpip作为创建容器和管理依赖项的方式.

目前,我正在更详细地学习Common Lisp,并想知道它的社区理念是如何管理依赖关系和包.

例如,如果我运行:

(ql:quickload '(cl-who hunchentoot parenscript elephant fiveam css-lite cl-json))

据我所知,所有这些软件包都将安装在quicklisp目录中的某个位置.(我不确定它们的安装形式或位置).

问题是,是否有必要安装不同版本的软件包,具体取决于手头的代码.也就是说,那个人做了什么?他只是依靠包的向后兼容性吗?

Common Lisp世界如何处理这个问题?

Ehv*_*nce 5

如果您需要特定版本的软件包进行开发,则只需将其克隆到Quicklisp(~/quicklisp/local-projects/)自动找到的存储库中即可.该版本将适用于所有项目.如果你需要将它作为项目本地,或者通过应用程序轻松发送依赖项列表,你可以使用Qlot,它实际上就像一个pip需求文件和一个venv.

还有其他答案所指出的Quicklisp捆绑包.

更重要的是,有Quicklisp控制器来构建dists,一整套协同工作的包,就像Quicklisp一样,但是对于你自己的相关包.这就是cl21所做的事情.

我建议不要打扰那些,直到你知道你需要它;)