【问题标题】:Configuration failed because libcurl was not found配置失败,因为找不到 libcurl
【发布时间】:2017-02-08 14:35:16
【问题描述】:

我正在尝试使用 fromJSON 从远程服务器提取一些 json 数据:

> server <- 'http://111.111.000.00:3000'
> streams <- fromJSON(paste(server, '/output/streams', sep=""), flatten=TRUE)

结果:

Error: Required package curl not found. 
Please run: install.packages('curl')

所以我尝试安装它:

> install.packages("curl")
Installing package into ‘/home/lauxxx/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/src/contrib/curl_2.3.tar.gz'
Content type 'application/x-gzip' length 400460 bytes (391 KB)
==================================================
downloaded 391 KB

* installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
Using PKG_CFLAGS=
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/lauxxx/R/x86_64-pc-linux-gnu-library/3.3/curl’
Warning in install.packages :
  installation of package ‘curl’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpdoavNf/downloaded_packages’

然后我尝试安装libcurl4-openssl-dev:

> install.packages("libcurl4-openssl-dev")
Installing package into ‘/home/lau/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)
Warning in install.packages :
  package ‘libcurl4-openssl-dev’ is not available (for R version 3.3.1)

为什么?出了什么问题?我该如何解决?

我在 Xubuntu 16.04 的时候还可以。但现在我在 Kubuntu 16.10 上。

有什么想法吗?

【问题讨论】:

  • 我遇到了同样的问题,从 ubuntu.com 下载 libcurl4 库作为 deb 并通过 Eddy 安装并没有解决我的问题,这是一个令人困惑的 b/c。但是,通过控制台安装它(如接受的答案中所建议的那样)确实有效。我想我对 Linux 的了解还不够,无法知道为什么这些可能会有所不同。

标签: r ubuntu curl


【解决方案1】:

libcurl4-openssl-dev 不是 R 包,而是一个 linux 库。

在控制台类型中:

sudo apt-get install libcurl4-openssl-dev

注意:你需要sudo权力。

【讨论】:

  • 在 Ubuntu 18.04 上运行 R 3.5.2 时遇到问题并且无法安装任何显示错误的软件包的人:“安装包错误:此版本的 R 未设置为安装源包如果它是从 RPM 安装的,您可能需要 R-devel RPM”这是同样的错误。主要错误是安装 r-base 会删除 libcurl3,安装 libcurl3 会删除 r-base 包,从而导致上述错误。执行 GGamba 建议的命令,你应该没问题。再次感谢 GGamba,我花了将近一个小时来解决这个错误。
  • @ParthPatel 我正在尝试使用 Travis CI(请参阅 here) - 我尝试将 sudo apt-get install libcurl4-openssl-dev 添加到 .travis.yml 并且我可以在构建日志中看到它似乎可以运行,但是原来的错误仍然存​​在。有什么想法吗?
  • 要安装所有 tidyverse 依赖项,我还需要安装 libssl,我正在运行 Ubuntu 20.04。所以为此我输入了:sudo apt-get install libssl-dev
  • 安装libssl-dev 或libcurl14-openssl-dev 后我无法安装tidyverse:# Rscript -e 'install.packages(c("tidyverse"))' 我得到ERROR: R_HOME ('/usr/lib/R') not found 有人遇到过这种错误吗?
【解决方案2】:

Linux 版本为:CentOS Linux release 7.3.1611 (Core)

就我而言,我试图安装 R 包:devtools

------------------------- 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=...'

我检查了$PATH,'pkg-config' 在 PATH 中。但是PKG_CONFIG_PATH中没有libcurl.pc文件(/usr/local/lib/pkgconfig/).

这是我解决问题的方法。

su
wget https://github.com/curl/curl/releases/download/curl-7_55_0/curl-7.55.0.tar.gz
./configure
make 
make install

之后,我在 PKG_CONFIG_PATH (/usr/local/lib/pkgconfig/) 中看到了 libcurl.pc 文件。

【讨论】:

  • 安装 libcurl4-openssl-dev 有效,但不能与 nodejs、npm 等同时工作。此方法适用于上述应用程序。
  • 这为我解决了。 Ubuntu 18.04,在 conda 环境中,安装了libcurl4-openssl-dev,但不知何故 R 没有找到它。手动编译 libcurl 解决了这个问题。
  • 这对我也有用。但是我不断收到错误错误错误在 curl::new_handle() : An unknown option was passed in to libcurl 当我尝试从 URL 检索数据时。
  • 这是一个临时解决方案,但是 library(RCurl) 和 library(curl) 仍然识别 curl 的旧版本,而不是使用上述过程从源代码编译的新版本。见here
  • 此解决方案适用于 Ubuntu 18.04。我下载了 curl 7.72.0(截至 2020 年 9 月 8 日的最新版本)。我必须使用 sudo powers 运行 make install
【解决方案3】:

尽管已经安装了 libcurl4-openssl-dev apt 软件包,但我在 Ubuntu Server 18.04 上遇到了这个错误。我必须查找where the package installs libcurl.pc 才能确定要使用的命令:

wget <curl-package-address>
R CMD INSTALL --configure-vars='LIB_DIR=/usr/lib/x86_64-linux-gnu/pkgconfig' <curl-file.gz>

(检查“ANTICONF ERROR”上方的消息以获取要下载和安装的正确文件。对于提问者,它是https://cran.rstudio.com/src/contrib/curl_2.3.tar.gz;我的是https://cloud.r-project.org/src/contrib/curl_4.3.tar.gz。)

【讨论】:

  • 我也注意到了这一点。我为libcurl 变体安装的任何软件包中都没有libcurl.pc。
  • 谢谢,这是在 Ubuntu 服务器 20.04 上唯一对我有用的东西。好像R安装后自己找不到libcurl。
【解决方案4】:

刚刚在使用 GitHub 操作按 cron 计划运行 R 脚本时遇到了这个问题。

将sudo apt-get install libcurl4-openssl-dev 弹出到 R 文件中的 system() 中有效。比单独在运行器上设置 bash 命令要容易得多。

system("sudo apt-get install libcurl4-openssl-dev")

【讨论】:

  • 万一其他人从搜索引擎中找到这个,这也是我在 Azure 机器学习中的 RStudio 所需要的。
【解决方案5】:
------------------------- 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)

我在 Fedora Workstation 33 中安装 R 包时遇到了这个问题。按照提示,确保为适当的架构安装 libcurl-devel,在本例中为 libcurl-devel.x86_64:

sudo dnf install openssl-dev libcurl-devel.x86_64

【讨论】:

    【解决方案6】:

    在我的 Ubuntu 18 中,这些解决方案都不能在 Rstudio 中运行。

    当我最终决定从命令行运行 R 时,成功了——我无法告诉你哪个“解决方案”是关键,因为此时我已经尝试了所有这些解决方案。

    请注意,如果我再次尝试运行 Rstudio,任何安装尝试仍然会失败。

    因此,Rstudio 无法正确推断环境可能存在一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-09
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多