You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04.1 LTS环境下安装R包时libcurl4-openssl-dev无法被识别的技术求助

问题背景与报错

我在Ubuntu 22.04.1 LTS系统中已经通过以下命令安装了系统级的libcurl4-openssl-dev:

sudo apt-get install libcurl4-openssl-dev

随后创建了一个Miniconda环境,并在其中安装了比base环境更旧的R版本(3.6.1),环境信息如下:

sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Ubuntu 22.04.1 LTS
Matrix products: default
BLAS/LAPACK: /home/studenti/miniconda3/envs/biobakery-melonnpan/lib/libopenblasp-r0.3.12.so
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.6.1

尝试批量安装R包时出现依赖缺失报错:

R -q -e "install.packages(c('devtools', 'glmnet', 'foreach', 'getopt', 'doParallel', 'vegan', 'data.table', 'ggplot2', 'AssocTests', 'optparse', 'tibble'), repos='http://cran.r-project.org')"

报错摘要:

ERROR: dependency ‘credentials’ is not available for package ‘gert’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/gert’
ERROR: dependency ‘httr’ is not available for package ‘gh’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/gh’
ERROR: dependencies ‘systemfonts’, ‘textshaping’ are not available for package ‘ragg’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/ragg’
ERROR: dependency ‘fExtremes’ is not available for package ‘AssocTests’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/AssocTests’
ERROR: dependencies ‘curl’, ‘gert’, ‘gh’ are not available for package ‘usethis’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/usethis’
ERROR: dependencies ‘httr’, ‘ragg’ are not available for package ‘pkgdown’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/pkgdown’
ERROR: dependencies ‘usethis’, ‘pkgdown’, ‘rcmdcheck’, ‘rversions’, ‘urlchecker’ are not available for package ‘devtools’
removing ‘/home/studenti/miniconda3/envs/biobakery-melonnpan/lib/R/library/devtools’

单独安装依赖包时遇到ANTICONF错误,提示找不到libcurl:

------------------------- 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=...'
--------------------------------------------------------------------
解决方案

针对Miniconda环境隔离系统库导致的libcurl无法被R识别问题,你可以尝试以下几种方法:

方法1:在conda环境中安装libcurl

Miniconda环境默认会优先使用环境内的库,而非系统库。你可以直接在目标conda环境中安装libcurl包,这样R就能找到对应的依赖:

# 激活你的conda环境
conda activate biobakery-melonnpan
# 安装conda版本的libcurl和pkg-config
conda install -c conda-forge libcurl pkg-config

安装完成后,再尝试重新安装R包:

install.packages(c('curl', 'httr', 'devtools'), dependencies=TRUE)

方法2:手动指定libcurl的路径给R

如果不想用conda版本的libcurl,可以手动告诉R系统级libcurl的位置。首先找到系统中libcurl的头文件和库文件路径:

# 查找libcurl.pc的位置
find /usr -name "libcurl.pc"
# 通常路径是/usr/lib/x86_64-linux-gnu/pkgconfig/libcurl.pc

提取对应的路径:

  • INCLUDE_DIR:通常为/usr/include/x86_64-linux-gnu
  • LIB_DIR:通常为/usr/lib/x86_64-linux-gnu

接下来,用install.packages指定配置变量安装curl包(这是最基础的依赖):

install.packages('curl', configure.vars = c(INCLUDE_DIR = '/usr/include/x86_64-linux-gnu', LIB_DIR = '/usr/lib/x86_64-linux-gnu'))

安装好curl后,再依次安装httr、gert、gh等依赖,最后安装devtools和其他目标包。

方法3:设置环境变量让R识别系统库

在激活conda环境后,设置PKG_CONFIG_PATH环境变量,让pkg-config能找到系统的libcurl.pc文件:

conda activate biobakery-melonnpan
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH"

然后启动R,尝试安装包:

install.packages('curl', dependencies=TRUE)

如果希望每次激活环境都自动设置这个变量,可以把export命令添加到conda环境的activate.d脚本中:

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH"' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

方法4:针对旧版R的兼容性调整

你的R版本是3.6.1,属于较旧的版本,部分新的R包可能不再支持该版本。对于报错中提到的fExtremes(AssocTests的依赖),你可能需要安装与R 3.6.1兼容的旧版本:

# 先确保devtools能安装成功
install.packages('devtools')
library(devtools)
# 安装兼容R 3.6.x的fExtremes版本
install_version('fExtremes', version='3042.82')

安装完fExtremes后,再尝试安装AssocTests。


内容的提问来源于stack exchange,提问作者Andrea Gatti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 16:12:32