我破坏了我的CL环境。我可以运行sbcl,但无法重新运行或重新安装Quicklisp (我只是删除了目录~/quicklisp/,并希望正确地重新开始)。我得到以下错误:
* (load #p"~/quicklisp/setup.lisp")
While evaluating the form starting at line 129, column 0
of #P"~/quicklisp/setup.lisp":
debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B67B3}>:
The function ASDF/FIND-SYSTEM::STAMP<= is undefined.第129项并不是很感兴趣,至少看起来是这样的。
相同的尝试重新安装Quicklisp。
ASDF版本3.2.1,SBCL 1.3.19。
这可能是什么原因呢?
或者我怎么才能完全正确地重新开始呢?(想到隐藏的.fasl文件什么的)。
谢谢!
编辑:下载asdf 2.26
* (quicklisp-quickstart:install)
; Fetching #<URL "http://beta.quicklisp.org/client/quicklisp.sexp">
; 0.82KB
==================================================
838 bytes in 0.00 seconds (818.36KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2017-03-06/quicklisp.tar">
; 250.00KB
==================================================
256,000 bytes in 0.09 seconds (2941.18KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/client/2015-09-24/setup.lisp">
; 4.94KB
==================================================
5,054 bytes in 0.00 seconds (0.00KB/sec)
; Fetching #<URL "http://beta.quicklisp.org/asdf/2.26/asdf.lisp">
; 194.07KB
==================================================
198,729 bytes in 0.08 seconds (2553.57KB/sec)While evaluating the form starting at line 129, column 0
of #P"/home/vince/quicklisp/setup.lisp":
debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10019B68B3}>:
The function ASDF/FIND-SYSTEM::STAMP<= is undefined.发布于 2018-01-07 13:30:32
最后,多亏了一条漂亮的ASDF警告消息,试图安装roswell实用程序:
安装sbcl-bin脚本.警告:您正在使用ASDF3.3.1版本(可能来自(需要" ASDF ")或由#P"/home/vince/bacasable/portacle/build/asdf/asdf.asd".加载),并在#P“/home/vince/bacasable/portacle/build/asdf/asdf.asd”.注册了较早版本的ASDF3.2.1安装和注册ASDF是配置ASDF以升级自身的正常方式,而注册旧版本则是配置错误。ASDF将忽略这个配置的系统,而不是降级自己。将来,您可能希望:(a)将此配置的ASDF升级到较新的版本,(b)安装较新的ASDF并在配置中的前面注册它,或者(c)从配置中卸载或卸载此版本和任何其他旧版本的ASDF。注意,旧的ASDF可能是通过从系统安装继承的配置隐式注册的,在这种情况下,您可能必须在您的~/..config/common/source-Regiy.conf或其他源注册表配置文件、环境变量或lisp参数中指定:忽略-继承-配置。实际上,可能的违反者是cl-asdf debian或ubuntu包的过时版本,您可能希望升级(如果最近有足够的版本可用),或者完全删除(因为大多数实现都附带最近的asdf);如果您缺乏升级或删除该包的系统管理权限,那么您可能确实希望安装和注册一个更新的版本,或者使用:忽略-继承-配置,以避免注册旧版本。请查阅ASDF文件和/或专家。
所以这是因为我删除了Portacle的一个版本,现在还行。我不知道为什么它会干扰我,尽管我的.sbclrc中有一个太宽的.sbclrc(但是看起来我的pb中有一行注释掉了…)。
因此,寻找解决方案应该是:尝试安装roswell实用程序(Roswell),查看asdf.lisp文件的位置(带有locate),并遵循ASDF警告。
感谢ASDF的好警告!
https://stackoverflow.com/questions/48086714
复制相似问题