我希望帮助用户从CRAN安装一个软件包,其中最新的源代码比二进制文件更新。
因此,为了给出一个具体的例子,install.packages("umx")安装了最新的二进制文件,但这比在CRAN上接受的源版本要早。
install.packages不会提醒用户新的源是可用的。
但是,用户可以通过转到CRAN页面,查找直接链接,并将其用作pkgs在install.packages中的输入,从而获得最新的源代码:
browseURL("https://cran.r-project.org/web/packages/umx/index.html")
install.packages("https://cran.r-project.org/src/contrib/umx_1.7.5.tar.gz")
# newest version (1.7.5) installed from source.但是我想要一个更自动化的方法来请求最新的源代码。我认为请求type = "source"将获得最新的源代码,但它试图获得二进制文件可用的旧版本(1.55)的源代码,但失败了:
install.packages("umx", type= "source")
... URL 'https://cran.rstudio.com/src/contrib/umx_1.5.5.tar.gz': status was '404 Not Found'有什么解决办法吗?
发布于 2017-04-07 11:42:26
在试图从源代码构建时,我确实收到了一整套警告和错误,主要是因为XML不想干净地构建。如果使用type = "source"安装,则所有依赖项也将从源安装。然而,如果我这么做:
install.packages("umx")它确实警告我,有一个更新的源代码版本,它从源代码安装1.7.5版本,同时将所有依赖项安装为二进制文件。这是因为参数type的默认选项是"both",这意味着它在"both"上安装二进制,除非没有二进制或最近的源代码版本。
如果你没有看到警告,试着强迫它使用
install.packages("umx", type = "both")注这需要安装Rtools。Rtools不是包,而是从源构建包所需的工具集。Rtools可在克拉恩上下载。一定要仔细阅读安装说明!
今天和R3.3号公路上,
install.packages("umx", type = "source") 是否尝试从源代码中安装umx版本1.7.5,以及一套完整的其他软件包。正如上面所解释的,由于XML (可能还有其他)包的编译错误,它失败了。
从源安装特定/旧版本
如果要安装特定版本,只需下载相关版本的.tar.gz文件,存储在计算机上,然后使用以下方法安装:
install.packages("path/to/umx_1.7.5.tar.gz", type = "source", repos = NULL)这将安装下载的.tar.gz文件,但您必须确保在从源代码构建此包之前安装了所有依赖项。
检查是否有问题
不过,请记住,从源代码安装并不总是一个明智的想法。您至少应该检查CRAN上的包的检查结果。在这种情况下,版本1.7.5似乎会导致问题,如umx.html上不同版本的CRAN结果所示

https://stackoverflow.com/questions/43275942
复制相似问题