2

我破坏了我的 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.
4

1 回答 1

0

终于得到了它,感谢一个很好的 ASDF 警告消息,尝试安装一个 roswell 实用程序:

为 sbcl-bin 安装脚本... 警告:您正在使用 ASDF 版本 3.3.1(可能来自 (需要 "asdf") 或由 quicklisp 加载)并且在 #P"/home 注册了旧版本的 ASDF 3.2.1 /vince/bacasable/portacle/build/asdf/asdf.asd”。安装和注册 ASDF 是配置 ASDF 进行自我升级的正常方式,注册旧版本是配置错误。ASDF 将忽略此配置的系统,而不是自行降级。将来,您可能希望:(a) 将此已配置的 ASDF 升级到较新版本,(b) 安装较新的 ASDF 并在您的配置中将其注册在前者之前,或者 (c) 卸载或取消注册此和您的配置中的任何其他旧版本的 ASDF。请注意,较旧的 ASDF 可能通过从系统安装继承的配置隐式注册,在这种情况下,您可能必须在 ~/.config/common-lisp/source-registry.conf 中指定 :ignore-inherited-configuration 或其他源注册表配置文件、环境变量或 lisp 参数。实际上,一个可能的违规者是 cl-asdf debian 或 ubuntu 软件包的过时版本,您可能想要升级(如果有足够新的版本可用)或完全删除(因为大多数实现都附带最新的 asdf);如果您缺乏升级或删除此软件包的系统管理权限,那么您可能确实想要安装和注册更新的版本,或者使用:ignore-inherited-configuration 以避免注册旧的。请咨询 ASDF 文档和/或专家。

所以这是因为我删除了 Portacle 的构建,现在它很好。~~虽然我不知道为什么它会干扰我~~我的范围太广(pushnew "~/bacasable/" asdf:*central-registry* :test #'equal).sbclrc(但似乎我把这行的 pb 注释掉了……)。

因此,寻找解决方案是:尝试安装 roswell 实用程序 (ros install sbcl-bin),查看 asdf.lisp 文件的位置(带有locate),并遵循 ASDF 警告。

感谢 ASDF 的好警告!

于 2018-01-07T13:30:32.293 回答