R和libcurl4在Ubuntu 18.04中几乎不共存

问题描述 投票:1回答:1

我有Ubuntu 18.04。我最近将R版本从3.2.3升级到了3.6.3。重新安装所需的软件包后,我偶然发现了httrcurl产生的问题。其他帖子,尤其是this(以及thisthis)也写过类似的文章(如果不是几乎相同的问题),但是跟随它们使我无处可寻,我的问题仍然存在。

对于冗长的帖子,我很抱歉,但是我认为其他人最终会在这个问题上迷失方向,所以我希望尽可能完整。这是发生了什么。

我正在尝试安装一个依赖项中包含httr的软件包。由于我需要重新安装它,因此尝试从install.packages("httr")和本地路径进行安装(请参见示例)。

> install.packages("/home/schmat/Documents/Marti/packages/httr_1.4.1.tar.gz", repos = NULL, type="source")
Installing package into ‘/home/schmat/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
ERROR: dependency ‘curl’ is not available for package ‘httr’

这显示curl不可用,因此我尝试以相同的方式安装curl。只能得到这个:

No package 'libcurl' found
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=...'
--------------------------------------------------------------------

因为这表明我需要安装libcurl4-openssl-dev,所以我尝试通过apt install完成安装,然后得到:

The following packages have unmet dependencies:
 libcurl4-openssl-dev : Depends: libcurl4 (= 7.58.0-2ubuntu3.8) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

所以我试图将我需要的libcurl.pc文件添加到$PKG_CONFIG_PATH

export PKG_CONFIG_PATH=/home/schmat/anaconda3/lib/pkgconfig/libcurl.pc

没有任何结果。

我尝试了git clone中建议的this thread方法,但没有成功。

[此时,我尝试从libcurl4安装apt install。但是,这样做我的R从系统中得到了[[removed。我重新安装了R(相同版本3.6.3),这删除了libcurl4

我陷入了这个循环,无法获得所需的东西,因为缺少了其他东西。那怎么可能?为什么无法安装最终需要某些curl功能的R软件包(最新版本,2020年3月26日!),因为curl无法与R/3.6.3共存?
r linux ubuntu curl httr
1个回答
0
投票
令人难以置信的是,经过数天的反复试验,我决定在这里写下问题的那一刻,几分钟后我也找到了答案。

[在我提供的链接之一(this)中,OP提到他/她从“垃圾”中清除了/etc/apt/sources.list。但是,没有声明哪个垃圾或文件的编辑方式。

以下是我为我做(和工作)的事情。

    我编辑了文件(具有sudo权限),更改了以下两行的内容:
  • deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/ # deb-src https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/
    收件人:

    deb https://cloud.r-project.org/bin/linux/ubuntu/ bionic-cran35/ deb-src https://cloud.r-project.org/bin/linux/ubuntu/ bionic-cran35/

    请注意,我将“ xenial”更改为“ bionic”,并且我未注释最后一行。

    1. 关闭并重新打开终端。
    2. Ran sudo apt updatesudo apt upgrade
    3. 已通过sudo apt install -y libcurl4安装

      libcurl4。这仍然会卸载R及其组件。

    4. 已通过sudo apt install -y libcurl4-openssl-dev安装

      libcurl4-openssl-dev

  • Ran sudo apt updatesudo apt upgrade
  • 通过sudo apt install -y r-base

  • 已安装

    r-base

  • 。这次,libcurl4未卸载。
  • 运行R,并安装所需的软件包。
  • © www.soinside.com 2019 - 2024. All rights reserved.