首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当二进制文件尚未启动时,按源请求最新的CRAN包版本。

当二进制文件尚未启动时,按源请求最新的CRAN包版本。
EN

Stack Overflow用户
提问于 2017-04-07 10:35:06
回答 1查看 545关注 0票数 1

我希望帮助用户从CRAN安装一个软件包,其中最新的源代码比二进制文件更新。

因此,为了给出一个具体的例子,install.packages("umx")安装了最新的二进制文件,但这比在CRAN上接受的源版本要早。

install.packages不会提醒用户新的源是可用的。

但是,用户可以通过转到CRAN页面,查找直接链接,并将其用作pkgs在install.packages中的输入,从而获得最新的源代码:

代码语言:javascript
复制
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)的源代码,但失败了:

代码语言:javascript
复制
install.packages("umx",  type= "source")
... URL 'https://cran.rstudio.com/src/contrib/umx_1.5.5.tar.gz': status was '404 Not Found'

有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-07 11:42:26

在试图从源代码构建时,我确实收到了一整套警告和错误,主要是因为XML不想干净地构建。如果使用type = "source"安装,则所有依赖项也将从源安装。然而,如果我这么做:

代码语言:javascript
复制
install.packages("umx")

它确实警告我,有一个更新的源代码版本,它从源代码安装1.7.5版本,同时将所有依赖项安装为二进制文件。这是因为参数type的默认选项是"both",这意味着它在"both"上安装二进制,除非没有二进制或最近的源代码版本。

如果你没有看到警告,试着强迫它使用

代码语言:javascript
复制
install.packages("umx", type = "both")

注这需要安装Rtools。Rtools不是包,而是从源构建包所需的工具集。Rtools可在克拉恩上下载。一定要仔细阅读安装说明!

今天和R3.3号公路上,

代码语言:javascript
复制
install.packages("umx", type = "source") 

是否尝试从源代码中安装umx版本1.7.5,以及一套完整的其他软件包。正如上面所解释的,由于XML (可能还有其他)包的编译错误,它失败了。

从源安装特定/旧版本

如果要安装特定版本,只需下载相关版本的.tar.gz文件,存储在计算机上,然后使用以下方法安装:

代码语言:javascript
复制
install.packages("path/to/umx_1.7.5.tar.gz", type = "source", repos = NULL)

这将安装下载的.tar.gz文件,但您必须确保在从源代码构建此包之前安装了所有依赖项。

检查是否有问题

不过,请记住,从源代码安装并不总是一个明智的想法。您至少应该检查CRAN上的包的检查结果。在这种情况下,版本1.7.5似乎会导致问题,如umx.html上不同版本的CRAN结果所示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43275942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档