fetch(key) 中的错误:延迟加载数据库

问题描述 投票:0回答:8

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

fetch(key) 中的错误:延迟加载数据库 '......descopl.rdb' 是 腐败

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

我不知道是什么导致了问题,我正在使用 roxygen 生成文档。

https://github.com/WilliamKinaan/descopl

r roxygen2
8个回答
155
投票

似乎是当 R 无法解压包时就会出现错误(正如 @rawr 所建立的那样,它已损坏)。这个解决方案对我有用:

1) 检查创建

.Rdb
文件时是否可能出现错误

2) 尝试重新启动 R 会话(例如,

.rs.restartR()
,如果在 RStudio 中)

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

?remove.packages()

将其删除

8
投票

我也遇到过这个问题。我的任何功能都没有发现任何问题。最后删除

roxygen2
文件然后让 roxygen2 重建它似乎解决了问题。
    


6
投票
这里。

它与开发工具有关。 根据@Zfunk .rdb

重新启动R。再次查看软件包的帮助。已修复!


6
投票

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

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

来重新启动会话)

    


5
投票

我在这里发布了 Jim Hester 在关于延迟加载损坏问题的

bug 报告

中建议的有点黑客的解决方案。 其要点是,该包可能在会话的

.rs.restartR()

环境中列出了一些残留的 S3 方法。我没有一个非常系统的方法来识别该环境中的哪些 S3 方法来自何处,但我认为一个好的起点是

.__S3MethodsTable__.
方法,并在包的
print
中查找
S3method
注册。
然后您可以从 

NAMESPACE

环境中删除这些 S3 方法并重试,例如

.__S3MethodsTable__.

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

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

您可以检查
rm(list="print.object", envir = get(".__S3MethodsTable__.", envir = baseenv()))

以查看会话中加载了哪些此类文件。对于此处

getLoadedDLLs()
的情况,以下解决了该问题:
glue



2
投票

问题解决了。


0
投票


0
投票

库(rmarkdown) 错误:get(Info[i, 1], envir = env) 中的“rmarkdown”包或命名空间加载失败:延迟加载数据库“C:/Users/aiims/AppData/Local/R/win-library/4.4/” xfun/R/xfun.rdb' 已损坏 另外:警告消息:在 get(Info[i, 1], envir = env) 中:使用 libdeflate 的 R_decompress1 中出现内部错误 1

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.