fetch(key)出错:延迟加载数据库

Pao*_*ang 63 r roxygen2

我不知道发生了什么,一切都很好但突然间我开始在文档中出现此错误消息:

fetch(key)出错:lazy-load database'...... descopl.rdb'已损坏

我删除了几乎所有的代码并再次构建然后发布到Github,但是当我使用其他笔记本电脑下载软件包时,正在下载和加载软件包但我无法调用任何函数,并且文档说明了该错误.

我不知道是什么导致了这个问题,我使用roxygen来生成文档.

https://github.com/WilliamKinaan/descopl

Rod*_*eda 92

当包不能被R解压缩时(如@rawr建立,它已损坏),似乎出现错误.这个解决方案对我有用:

1)检查.Rdb 文件创建中是否存在错误

2)尝试重新启动R会话(例如,.rs.restartR()如果在RStudio中)

3)软件包可能已安装在您的计算机中(即使它不起作用).使用删除它?remove.packages()

  • '尝试重启你的R会话'......很棒! (26认同)
  • 在RStudio中,您可以使用`.rs.restartR()`重新启动R,这将恢复您的会话(变量,库),但解决了“ .rdb”已损坏的问题。 (3认同)

Zfu*_*unk 7

我也遇到过这个问题roxygen2.无法看到我的任何功能有任何问题.最后删除.rdb文件,然后让roxygen2重建它似乎解决了这个问题.


use*_*745 6

当另一个 R 会话正在运行时,我在重新安装库后收到此错误。

只需重新启动现有的 R 会话即可解决我的问题(即运行.rs.restartR()以重新启动会话)


בני*_*ילי 5

我认为是什么原因的解释在这里。 它与devtools有关。每个@Zfunk

cd ~/Rlibs/descopl/help
rm *.rdb
Run Code Online (Sandbox Code Playgroud)

重新启动R。再次查看软件包的帮助。固定!


Mic*_*ico 5

基本上所有答案都需要重新启动 R 才能解决问题,但我发现自己处于一个我真的不想重新启动 R 的环境中。

我在这里发布了 Jim Hester 在有关延迟加载损坏问题的错误报告中建议的有点黑客风格的解决方案。

其要点是该包可能在会话.__S3MethodsTable__.环境中列出了一些残留的 S3 方法。我没有一个非常系统的方法来识别该环境中的哪些 S3 方法来自哪里,但我认为一个好的起点是方法print,并S3method在包的NAMESPACE.

然后,您可以从环境中删除这些 S3 方法.__S3MethodsTable__.并重试,例如

rm(list="print.object", envir = get(".__S3MethodsTable__.", envir = baseenv()))
Run Code Online (Sandbox Code Playgroud)

如果出现一些新消息,您可能还需要卸载一些 DLL,例如

包 /usr/local/lib/R/site-library/glue/libs/glue.so 中没有这样的符号glue_

您可以检查getLoadedDLLs()会话中加载了哪些此类文件。在此情况下glue,以下问题解决了:

library.dynam.unload('glue', '/usr/local/lib/R/site-library/glue')
Run Code Online (Sandbox Code Playgroud)