我不知道发生了什么,一切都很好但突然间我开始在文档中出现此错误消息:
fetch(key)出错:lazy-load database'...... descopl.rdb'已损坏
我删除了几乎所有的代码并再次构建然后发布到Github,但是当我使用其他笔记本电脑下载软件包时,正在下载和加载软件包但我无法调用任何函数,并且文档说明了该错误.
我不知道是什么导致了这个问题,我使用roxygen来生成文档.
我认为是什么原因的解释在这里。 它与devtools有关。每个@Zfunk
cd ~/Rlibs/descopl/help
rm *.rdb
Run Code Online (Sandbox Code Playgroud)
重新启动R。再次查看软件包的帮助。固定!
基本上所有答案都需要重新启动 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)