在Ubuntu 20.04上安装biomaRt R软件包时出现CURL_OPENSSL_3问题

问题描述

问题

我正在尝试安装biomart R软件包,但是我一直遇到问题。我还注意到,诸如twitteR之类的其他一些软件包也会发生相同的问题。似乎是与curl有关的问题。

当我在下面运行以下安装命令时:

if (!requireNamespace("BiocManager",quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("biomart")

我收到以下错误消息:

Bioconductor version 3.10 (BiocManager 1.30.10),R 3.6.3 (2020-02-29)
Installing package(s) 'biomart'
also installing the dependency ‘BiocFileCache’

trying URL 'https://bioconductor.org/packages/3.10/bioc/src/contrib/BiocFileCache_1.10.2.tar.gz'
Content type 'application/x-gzip' length 288347 bytes (281 KB)
==================================================
downloaded 281 KB

trying URL 'https://bioconductor.org/packages/3.10/bioc/src/contrib/biomart_2.42.1.tar.gz'
Content type 'application/x-gzip' length 431995 bytes (421 KB)
==================================================
downloaded 421 KB

* installing *source* package ‘BiocFileCache’ ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
Error in dyn.load(file,DLLpath = DLLpath,...) : 
  unable to load shared object '/usr/local/lib/R/site-library/curl/libs/curl.so':
  /usr/local/lib/R/site-library/curl/libs/curl.so: undefined symbol: curl_easy_strerror,version CURL_OPENSSL_3
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted

问题

您是否经历过类似的经历?如果是这样,您是如何解决的?

尝试解决

  1. 尝试安装here所述的RCurl软件包,但没有帮助。

  2. 尝试按照here的说明安装libcurl3。但是,它会破坏R的安装。

  3. 尝试重新安装R。

以上都不对我有用。

R会话信息

> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.1 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  Grdevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Crayon_1.3.4        dplyr_1.0.2         grid_3.6.3          R6_2.4.1            gtable_0.3.0        lifecycle_0.2.0    
 [7] magrittr_1.5        scales_1.1.1        ggplot2_3.3.2       pillar_1.4.6        rlang_0.4.7         rstudioapi_0.11    
[13] vctrs_0.3.4         generics_0.0.2      ellipsis_0.3.1      tools_3.6.3         glue_1.4.2          munsell_0.5.0      
[19] purrr_0.3.4         compiler_3.6.3      colorspace_1.4-1    pkgconfig_2.0.3     BiocManager_1.30.10 tidyselect_1.1.0   
[25] tibble_3.0.3  

 

解决方法

我在编写此线程时,遇到了一个简单的解决方案。

基本上卸载和安装R curl软件包很有帮助。

remove.packages("curl")
install.packages("curl")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...