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

时间:2015-05-24 14:28:57

标签: r roxygen2

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

  

fetch(key)出错:lazy-load database' ...... descopl.rdb'是   腐败

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

我不知道导致问题的原因,我正在使用roxygen来生成文档。

https://github.com/WilliamKinaan/descopl

7 个答案:

答案 0 :(得分:78)

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

1)检查创建.Rdb文件

时是否存在错误

2)尝试restarting your R session(例如.rs.restartR()如果在RStudio中)

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

删除它

答案 1 :(得分:6)

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

答案 2 :(得分:4)

我认为造成这种情况的原因的解释是here. 它与devtools有关。 按@Zfunk

cd ~/Rlibs/descopl/help
rm *.rdb

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

如果您使用的是R-studio: 1)Ctrl + Shift + F10重新启动R会话 2)工具->检查软件包更新->更新所有软件包 3)库(ggmap)

问题已解决。

答案 5 :(得分:0)

我在Mac OS上的RStudio上遇到此错误-更新所有软件包并重新启动r会话可以解决问题。

答案 6 :(得分:0)

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

我在这里发布了吉姆·海斯特(Jim Hester)在bug report中提出的有关延迟加载损坏问题的一种有点破解的解决方案。

要点是,该软件包可能在会话的.__S3MethodsTable__.环境中列出了一些残余的S3方法。我没有一种非常系统的方法来确定该环境中哪些S3方法来自何处,但是我认为一个不错的起点是print方法,并在软件包的目录中寻找S3method注册NAMESPACE

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

rm(list="print.object", envir = get(".__S3MethodsTable__.", envir = baseenv()))

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

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

您可以检查getLoadedDLLs()来查看会话中加载了哪些此类文件。对于此处的glue,以下解决了该问题:

library.dynam.unload('glue', '/usr/local/lib/R/site-library/glue')