当我尝试通过 raco 安装软件包时,收到一条奇怪的错误消息:
raco setup: directory: #<path:/Users/ben/code/racket/benchmark/tr-pfds/pfds> does not exist for collection: "pfds"
Run Code Online (Sandbox Code Playgroud)
更奇怪的是,运行raco pkg show并没有显示关于这个“pfds”集合的任何信息:
Installation-wide:
Package Checksum Source
main-distribution f07e2d4bf2708c1085be38eca18aa9eb6755e547 (catalog main-distribution)
racket-lib 41c7b3221006758c5a840a18dcc0d265632f14c2 (catalog racket-lib)
[178 auto-installed packages not shown]
User-specific for installation "6.1":
Package Checksum Source
benchmark 1237b50804bb42bd242ba7b3eb6e2b98794b40ee (catalog benchmark)
feature-profile 109e89701839a6d2fed9d1713aef8d21cc8b54d4 (catalog feature-profile)
quickcheck 1afac87825c5da8b35b327f5df3f1f9e1bf3cb9d (catalog quickcheck)
rackunit-chk 9c6e9c346c0e83bd3bb8dd16e321a2fa3e02b42e (catalog rackunit-chk)
Run Code Online (Sandbox Code Playgroud)
我尝试的另一件事是删除“pfds”集合,但这也不顺利:
raco6.1 pkg remove pfds
Removing pfds
raco6.1 pkg remove: package not currently installed
package: pfds
current scope: user
Run Code Online (Sandbox Code Playgroud)
但回想起来,这个错误对我来说很有意义,因为/Users/ben/code/racket/benchmark/tr-pfds/pfds我的机器上不存在该目录。我几周前删除了它。
有谁知道发生了什么?
你raco link过去用过吗?如果您raco link编辑了一个已删除的目录,有时您会看到此错误消息。
您可以尝试以下三件事:
跑步raco link --repair。理想情况下,这应该通过删除所有无效链接来修复您的安装。
运行raco link -r pkfds,这应该会删除您的pfds链接。
检查您的links.rktd文件,该文件可以在以下位置找到:
~/.racket/<version>/links.rktd~/Library/Racket/<version>/links.rktdC:\Users\<username>\AppData\Roaming\Racket\<version>\links.rktdpfds在该文件中,您可能会看到导致问题的链接。
删除链接后,raco setup应该可以再次正常工作。
(作为附录,值得注意的是,raco link有一个来自 Racket 内部的 API 调用。)