我注意到在我下载的许多R包的目录中都有一个名为'MD5‘的文件。然而,我在“编写R扩展”手册中找不到这一点。它列出了软件包中不同文件的MD5散列和文件名。这个文件是用来做什么的?它应该包含在我的包中吗?它是如何生成的?
发布于 2016-07-02 10:36:50
在R包中找到的MD5散列文件用于唯一地标识存储库(例如CRAN)上的包src。
具体地说,当包在存储库中列出时,包的元数据将被添加到名为PACKAGES的文件中。当用户通过install.packages()请求包时,将触发检查MD5散列的下载。这在?md5sum函数中进行了说明
MD5 sums用于检查R包是否已正确解包且随后未被修改。
PACKAGES文件的内部将如下所示:
Package: datapkg
Version: 2.0.0
Depends: R (>= 3.2)
License: file LICENSE
MD5sum: 22797605db853f5f4c2c5612da366b53
NeedsCompilation: no有关repos如何与install.packages()一起工作的更多信息,请参见我写的帖子:
http://thecoatlessprofessor.com/programming/r-data-packages-in-external-data-repositories-using-the-additional_repositories-field/
发布于 2019-01-19 00:08:55
该文件用作tools::checkMD5sums()的输入,并检查已安装软件包的完整性。可以通过以下代码对格式进行逆向工程:一个文本文件,其中每个包含的文件都有一行,其中包含MD5散列、*分隔符和相对于指定根目录的文件路径。您可以从tools::md5sum()的输出中手动创建这些函数,也可以使用我在中提供的一个函数,我将在这里对此进行更详细的讨论。
发布于 2021-10-30 17:09:57
我来这里是为了了解如何获取文件的md5散列。这种方法简单而有效:
library(openssl)
as.character(md5(file("path/to/yourfile.txt", open = "rb")))
# [1] "30621b64b2232a67900738ab471f2067"https://stackoverflow.com/questions/38124768
复制相似问题