tidyverse 安装错误:没有名为“fansi”的包

时间:2021-06-01 00:39:32

标签: r tidyverse

我安装了“tidyverse”,但显示错误。

Error: package or namespace load failed for ‘tidyverse’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 there is no package called ‘fansi’

所以我安装了'fansi',它显示在下面。

> install.packages("fansi")

  There is a binary version available but the source version is later:
      binary source needs_compilation
fansi  0.4.2  0.5.0              TRUE

Do you want to install from sources the package which needs compilation? (Yes/no/cancel) yes

但我收到以下错误消息。

* installing *source* package ‘fansi’ ...
** package ‘fansi’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
ERROR: compilation failed for package ‘fansi’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1/Resources/library/fansi’
Warning in install.packages :
  installation of package ‘fansi’ had non-zero exit status

我尝试再次运行“tidyverse”,但仍然出现相同的错误。 您知道这是什么原因造成的以及如何解决吗?

1 个答案:

答案 0 :(得分:1)

一般来说,作为新用户,在 R 中遇到问题 Do you want to install from sources the package which needs compilation? (Yes/no/cancel) 时,只需选择“否”就容易多了。

R 对问题的解释和回答

问题 Do you want to install from sources the package which needs compilation? (Yes/no/cancel) 告诉您,您尝试安装的一个(或多个)软件包的版本比可用的二进制版本更新。要理解这意味着什么,您需要对 R 包生态系统有所了解。

起重机

安装软件包的默认位置称为 CRAN(综合 R 存档网络)。这是一个网络服务器(实际上世界范围内有许多服务器),它有许多 R 包的副本。当为 R 编写包时,它们最初被编写并作为 source code 提交给 CRAN。然后将提交给 CRAN 的源代码compiled 转换为适用于 Windows 和 Mac OS 操作系统的 binary packages

你可以把它想象成一家服装店。你可以去商店买一件夹克来应对寒冷的天气,或者在晴天买一顶帽子,或者其他很多选择。

二进制包

包被编译成二进制文件是因为它们有 several advantages:它们使最终用户能够更快地安装,因为用户不需要自己编译源代码,从而节省了时间。它们也更易于用户管理,因为用户不需要额外的软件或工具,而且它们往往更稳定。然而,缺点是二进制文件特定于特定系统,通常是操作系统,有时甚至是特定版本的操作系统。从源代码编译包需要时间,特别是如果它是一个大包。二进制文件也(可能)不包含最新版本的代码,因此可能存在尚未修复的错误,或者可能缺少新功能或添加内容。

CRAN 流程

当 CRAN 收到更新的包时,可能需要几天时间才能将源代码编译为二进制文件。同时,如果用户尝试安装该软件包,则会显示您观察到的消息,让用户选择安装二进制文件,这通常会快得多,但可能没有一些新功能或可能包含尚未安装的错误尚未修复,或者源代码版本是最新版本,但需要您发现的额外工具。

在商店类比的上下文中,您可以将其视为服装店的新库存。他们收到了新库存,但还没有上架。你可以过几天再来,或者你可以找到盒子(需要用刀之类的工具才能打开)自己打开包装,然后拿到物品。

从源安装

正如@Bruno 在评论中提到的,您需要 install Xcode 在 MacOS 上从源代码安装软件包或在 Windows 上安装 rtools。大多数情况下,安装这些附加工具就是从源代码构建软件包所需的全部内容,但有时事情可能不会那么顺利,这就是为什么安装二进制文件通常会更好的原因。

关于冲突的附加说明

您在加载 tidyverse 时收到的关于冲突的说明是完全正常的。它是为了提醒您有多个来自不同包的同名函数,如果您没有意识到,这可能会导致问题。在大多数情况下,您无需担心,但如果出现问题,则非常easy to solve