尽可能使用预编译的包

尽可能使用预编译的包

我正在使用带有 R (3.4.4)/RStudio (1.2.1335) 的 Ubuntu 18.04,并且在安装某些软件包时遇到了很大困难。为了回答这个问题,我将使用 Tidyverse 作为示例。

使用 RStudio,我运行:

install.packages("tidyverse", dependencies = TRUE)

在看似良好的开始(“尝试 X-package,下载 X-package...”)之后,安装过程却充斥着大量错误消息。(请注意,无论我设置dependenciesTRUE还是,都会发生这种情况FALSE。)

我已阅读错误消息的建议并按照说明操作,但没有任何变化。我花了几个小时在网上研究如何解决这个问题,并尝试了不同的方法(例如指定用于存储软件包的文件夹/目录、重新安装某些软件、删除其他软件和其他一些方法),但仍然没有任何变化。

我已经完全卸载并重新安装 R/RStudio,但仍然出现同样的问题。

例如,当我运行上述代码时,事情开始出错:

* installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
Found pkg-config cflags and libs!
/home/mus/.R/Makevars:1: *** missing separator. Stop.
/home/mus/.R/Makevars:1: *** missing separator. Stop.
/home/mus/.R/Makevars:1: *** missing separator. Stop.
Using PKG_CFLAGS=-I/usr/include/x86_64-linux-gnu
Using PKG_LIBS=-lcurl
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
 * rpm: libcurl-devel (Fedora, CentOS, RHEL)
 * csw: libcurl_dev (Solaris)
If libcurl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libcurl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
ERROR: configuration failed for package ‘curl’
* removing ‘/home/mus/R/x86_64-pc-linux-gnu-library/3.4/curl’
Warning in install.packages :
  installation of package ‘curl’ had non-zero exit status
* installing *source* package ‘haven’ ...
** package ‘haven’ successfully unpacked and MD5 sums checked
** libs
/home/mus/.R/Makevars:1: *** missing separator. Stop.
ERROR: compilation failed for package ‘haven’
* removing ‘/home/mus/R/x86_64-pc-linux-gnu-library/3.4/haven’

这条消息的长度要长得多——我只是为了回答这个问题而截断了它。

我的问题是:我可能遗漏了什么?我不认为这个问题应该很难解决,但事实证明这是我遇到过的最复杂的问题之一,我无法想象它可能是什么。

有过类似经历的人能分享一些技巧和窍门吗?

我该如何避免这些错误消息?(请注意,当我尝试从终端运行相同的命令时也会发生这种情况。)

另外,如果有帮助的话:

> .libPaths()
[1] "/home/mus/R/x86_64-pc-linux-gnu-library/3.4" "/usr/local/lib/R/site-library"              
[3] "/usr/lib/R/site-library"                     "/usr/lib/R/library" 

答案1

尽可能使用预编译的包

对于一般软件包来说如此,对于 R 软件包来说也是如此。使用 Ubuntu 的应用程序包下载和安装系统来获取 R 软件包。

要查明 R-CRAN 存储库中是否有特定的 R 包,请按Ctrl+ Alt+打开终端T并输入:

apt-cache search tidyverse

您将看到与以下内容相关的软件包列表tidyverse

r-cran-sjmisc - GNU R package "Data and Variable Transformation Functions"
r-cran-tidyverse - GNU R package "Easily Install and Load the 'Tidyverse'"
r-cran-tidyquant - GNU R package "Tidy Quantitative Financial Analysis"
r-cran-rlang - GNU R package "Functions for Base Types and Core R and
r-cran-tidyselect - GNU R package "Select from a Set of Strings"
r-cran-sugrrants - GNU R package "Supporting Graphs for Analysing Time
r-cran-tidyimpute - GNU R package "Imputation the Tidyverse Way"
r-cran-pivot - GNU R package "'SQL' PIVOT and UNPIVOT"
r-cran-tidycensus - GNU R package "Load US Census Boundary and Attribute Data
r-cran-janitor - GNU R package "Simple Tools for Examining and Cleaning
r-cran-areal - GNU R package "Areal Weighted Interpolation"
r-cran-moderndive - GNU R package "Tidyverse-Friendly Introductory Linear

您正在寻找的包位于列表中的第二个。所有 R 包均有前缀r-cran-

要安装 R 包,请输入:

sudo apt install r-cran-tidyverse

系统会要求您输入密码。输入密码时,光标不会移动,也不会看到 *******。这在 Ubuntu 中很正常。

以这种方式安装 R 包有两个好处:

  1. 它将使 fGarch 保持最新状态。每当 R-Cran 存储库中的 fGarch 更新时,它都会随着系统更新过程在您的计算机中更新。
  2. 该计算机的所有用户都将能够使用 R 和 RStudio 中的 fGarch 包。

R和RStudio安装及包错误更多细节。

错误:

您看到的错误是因为curl您的 Ubuntu 中未安装。Ubuntu 使用wget而其他发行版使用curl下载系统包。当您尝试从 R(或 RStudio)中安装包时,它会尝试安装 Ubuntu 系统包curl。这不起作用,因为 RStudio 没有sudo权限。

为了解决这个问题,请curl在 Ubuntu 系统级别进行安装:

sudo apt install curl

这将curl在 Ubuntu 中安装并允许 R 使用curl

希望这可以帮助

相关内容