R包中的MD5文件是做什么用的?它是如何产生的?

Mat*_*der 5 md5 r r-package

我注意到我下载的许多 R 包的目录中存在一个名为“MD5”的文件。但是,我在“编写 R 扩展”手册中找不到提及此内容。它列出了包中不同文件的 MD5 哈希值和文件名。这个文件是做什么用的?它应该包含在我的包裹中吗?它是如何产生的?

coa*_*ess 9

R 包中的 MD5 哈希文件用于唯一标识src存储库(例如 CRAN)上的包。

具体来说,当包在存储库中列出时,包的元数据将添加到名为PACKAGES. 当用户通过 请求包时install.packages(),会触发下载并检查 MD5 哈希值。这是在?md5sum函数中声明的

MD5 和用于检查 R 包是否已正确解包且随后未被修改。

文件的内部PACKAGES看起来像:

Package: datapkg
Version: 2.0.0
Depends: R (>= 3.2)
License: file LICENSE
MD5sum: 22797605db853f5f4c2c5612da366b53
NeedsCompilation: no
Run Code Online (Sandbox Code Playgroud)

有关 repos 如何使用的更多信息install.packages(),请参阅我写的帖子:

http://thecoatlessprofessor.com/programming/r-data-packages-in-external-data-repositories-using-the-additional_repositories-field/


hyg*_*inn 5

该文件用作已tools::checkMD5sums()安装包的输入并检查其完整性。该格式可以从代码进行逆向工程:一个文本文件,每个包含的文件都有一行,包含 MD5 哈希值、分隔符*以及相对于指定根目录的文件路径。您可以从 - 的输出手动创建这些,或者您可以使用我在本 Gisttools::md5sum()中提供的函数,我也在其中更详细地讨论了这一点。