由于未找到libcurl,配置失败。

81

我正在尝试使用 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库并通过Eddy安装并不能解决我的问题,这让我感到困惑。然而,通过控制台安装它(如接受的答案中建议的那样)确实有效。我猜我不太了解Linux,不知道为什么这些方法会有所不同。 - DirtStats
7个回答

145

libcurl4-openssl-dev不是R包,而是Linux库。

在控制台中输入:

sudo apt-get install libcurl4-openssl-dev

注意:您需要 sudo 权限。


有些人在Ubuntu 18.04上运行R 3.5.2时遇到了麻烦,无法安装任何显示错误的软件包:“install.packages中的错误:此版本的R未设置为安装源软件包。如果它是从RPM安装的,则可能需要R-devel RPM”,这是相同的错误。主要错误是安装r-base会删除libcurl3,而安装libcurl3会删除r-base软件包,导致上述错误。执行GGamba建议的命令,您就可以解决问题了。再次感谢GGamba,我花了将近一个小时来解决这个错误。 - Parth Patel
@ParthPatel 我正在尝试使用Travis CI(请参见此处) - 我已经尝试将sudo apt-get install libcurl4-openssl-dev添加到.travis.yml中,并且我可以在构建日志中看到它似乎在运行,但原始错误仍然存在。有什么想法吗? - stevec
2
为了安装所有的 tidyverse 依赖项,我还需要安装 libssl,在我的 Ubuntu 20.04 上运行。因此,我输入了以下命令:sudo apt-get install libssl-dev - DirtStats
安装了libssl-dev或者libcurl14-openssl-dev之后,我无法安装tidyverse。在执行命令# Rscript -e 'install.packages(c("tidyverse"))'时,我遇到了错误提示:ERROR: R_HOME ('/usr/lib/R') not found。有人遇到过这种错误吗? - 32cupo
谢谢,这解决了我在安装httr、RCurl和plotly时解决curl依赖性的问题。我的Ubuntu 18.04缺少该库的dev版本。 "R version 4.2.2 Patched(2022-11-10 r83330) --"Innocent and Trusting""和"Ubuntu 20.04.5 LTS". - Pablo Adames

28

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 (/usr/local/lib/pkgconfig/)中没有libcurl.pc文件。

以下是我解决问题的方法。

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

在此之后,我在/usr/local/lib/pkgconfig/路径下的PKG_CONFIG_PATH中看到了libcurl.pc文件。


1
安装libcurl4-openssl-dev是可行的,但它不能与nodejs、npm等同时使用。这种方法适用于上述应用程序。 - Naveen Mathew
这对我解决了问题。在Ubuntu 18.04中,使用conda环境时,已安装libcurl4-openssl-dev,但是R无法找到它。手动编译libcurl解决了这个问题。 - fridaymeetssunday
这对我也起作用了。但是当我尝试从URL检索数据时,我一直收到错误“curl :: new_handle()中的错误:传递给libcurl的未知选项”。 - KarthikS
这是一个过渡性的解决方案,但是library(RCurl)和library(curl)仍然识别旧版本的curl而不是使用上述程序编译的新版本。请参见此处 - KarthikS
1
这个解决方案适用于Ubuntu 18.04。我下载了curl 7.72.0(截至2020年9月8日的最新版本)。我必须使用sudo权限运行make install。 - antortjim
yum安装libcurl-devel正常运行。 - Digin Dominic

10

在使用GitHub Actions按计划运行R脚本时,遇到了这个问题。

sudo apt-get install libcurl4-openssl-dev放入R文件中的system()函数中即可解决问题。比单独设置runner上的bash命令容易得多。

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

1
如果有其他人通过搜索引擎找到这篇文章,我需要说明的是,这也是我在 Azure 机器学习中使用 RStudio 所需的内容。 - Brian

8

尽管已经安装了libcurl4-openssl-devapt软件包,但我在Ubuntu Server 18.04上遇到了这个错误。我不得不查找软件包安装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 - ryeager
谢谢,这是在Ubuntu服务器20.04上唯一有效的解决方法。似乎在安装后R无法自行找到libcurl - Cameron Hyde
我在安装 tidyverse 时遇到了同样的问题,R控制台显示以下消息:`--[ANTICONF]-- 尝试安装:
  • deb: libfreetype6-dev libharfbuzz-dev libfribidi-dev libjpeg-dev (Debian, Ubuntu, 等等)' -- [ERROR MESSAGE] --这是我在 MacBook Pro9.2 上运行 Ubuntu 22.10 时遇到的错误。通过从终端(Ctrl+Alt+t)安装ibharfbuzz-dev libfribidi-dev 'libjpeg-dev libfreetype6-dev 来解决这个问题。关键是要查找 ANTICONF 消息中缺少哪些库并安装它们。
- Saneesh C S

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

在我的情况下是 openssl-devel,但还是谢谢! - Eduardo Jiménez

0
在我的Ubuntu 18的情况下,这些解决方案都无法在Rstudio内部工作。
当我最终决定从命令行运行R时,成功了--到此为止,我已经尝试过所有的“解决方案”,我无法告诉你哪一个是关键。
请注意,如果我再次尝试运行Rstudio,则任何安装尝试仍将失败。
因此,Rstudio可能存在某些问题,无法正确推断环境。

0
如果您正在使用conda环境,以下命令将解决该问题。
conda install -c conda-forge r-curl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接