代码之家  ›  专栏  ›  技术社区  ›  Michaël Le Barbier

如何安排quicklisp加载给定库的本地版本

  •  4
  • Michaël Le Barbier  · 技术社区  · 6 年前

    我在用 Quicklisp 在公共lisp项目中加载库 我需要加载某个库的自定义版本,而不是quicklisp提供的版本。

    库的定制版本存储在本地项目目录中,本地项目已经注册。但是,quicklisp仍然试图加载它自己版本的库。

    如何安排quicklisp更喜欢自定义的库?(附带问题:如何询问quicklisp将使用哪个位置加载库?)

    1 回复  |  直到 6 年前
        1
  •  6
  •   Michaël Le Barbier    6 年前

    如果项目的系统文件可以用asdf加载,那么它将优先于quicklisp提供的版本加载。最简单的方法是将项目的源代码 ~/quicklisp/local-projects/ (或者安装quicklisp而不是 ~/quicklisp/ )然后跑 (ql:register-local-projects) .但是其他的方法,比如更新asdf注册表配置和通过注册表将项目放到asdf知道的地方,也可以工作。

    要了解quicklisp加载项目的位置,可以使用 (ql:where-is-system "system-name") 是的。

    记住这一点

    本地项目机制是通过一个特殊的变量配置的 ql:*local-project-directories*. 默认情况下,它只包含QuasLISP安装目录中的本地项目子目录,但您可以在任何时候添加或删除目录,以便为系统扫描更多的位置。 要完全禁用本地项目机制,请设置 ql:*local-project-directories* NIL .

    ( Quicklisp News Blog )