如何在 quicklisp 中升级 asdf 版本?
Posted
技术标签:
【中文标题】如何在 quicklisp 中升级 asdf 版本?【英文标题】:How to upgrade asdf version in quicklisp? 【发布时间】:2018-01-06 17:12:49 【问题描述】:我想编译并运行一个 lisp 源代码来解析 peercoin 区块链,这样我就可以获得前 100 个最富有的地址。我正在使用 lisp 源代码https://github.com/glv2/peercoin-blockchain-parser。 我已经在我的系统上安装了 quicklisp,但是在运行下面的代码时会抛出错误:
debugger invoked on a LOAD-SYSTEM-DEFINITION-ERROR in thread #<THREAD "main thread" RUNNING 1002A8AF63>:
Error while trying to load definition for system bordeaux-threads from
pathname /home/deepchand/quicklisp/dists/quicklisp/software/bordeaux-threads-v0.8.5/bordeaux-threads.asd:
READ error during COMPILE-FILE:
You need ASDF >= 3.1 to load this system correctly.
(in form starting at line: 1, column: 0, file-position: 0)
如何更新 asdf 以解决此错误?
【问题讨论】:
遇到此类错误请提供(lisp-implementation-type)
和(lisp-implementation-version)
的结果。
@coredump 结果:(lisp-implementation-type) "SBCL" 0] (lisp-implementation-version) "1.1.14.debian" 0]
我建议只获取更新版本的 SBCL (1.3.20)。但我仍然想要这个问题的答案:)
【参考方案1】:
对于其他 lisp 实现,比如 LispWorks,你可以通过从 asdf 网站下载 asdf.lisp 3.1 或更高版本,然后将
(load "asdf.lisp")
在加载 quicklisp 之前的初始化文件中。 LispWorks[1] 建议你也这样做
(provide "asdf")
为我工作。
[1]http://www.lispworks.com/documentation/lw61/LW/html/lw-312.htm
【讨论】:
【参考方案2】:见https://common-lisp.net/project/asdf/asdf.html#Upgrading-ASDF
你可以
从 git 下载官方 tarball 或签出版本到 ~/common-lisp/asdf/。
然后它应该在启动时找到。我想就是这样(我最近做了,不记得其他步骤了)。
【讨论】:
【参考方案3】:以下内容对我有用。
从https://common-lisp.net/project/asdf/asdf.html 下载您想要的 asdf.lisp 版本。就我而言,我从位于 /usr/share/common-lisp/source 的系统安装副本中复制了我的副本
将新副本放入 ~/quicklisp 目录或您的 quicklisp 所在的任何目录中,覆盖该目录中的旧 asdf.lisp。
删除 ~/quicklisp/cache 目录。
重启你的 lisp。重新填充 ~/quicklisp/cache 目录需要一些时间,所以请耐心等待。
【讨论】:
以上是关于如何在 quicklisp 中升级 asdf 版本?的主要内容,如果未能解决你的问题,请参考以下文章
在 quicklisp 项目上使用 buildapp 时如何修复 asdf 错误