我有Ubuntu 18.04。我最近将R版本从3.2.3
升级到了3.6.3
。重新安装所需的软件包后,我偶然发现了httr和curl产生的问题。其他帖子,尤其是this(以及this和this)也写过类似的文章(如果不是几乎相同的问题),但是跟随它们使我无处可寻,我的问题仍然存在。
对于冗长的帖子,我很抱歉,但是我认为其他人最终会在这个问题上迷失方向,所以我希望尽可能完整。这是发生了什么。
我正在尝试安装一个依赖项中包含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
共存?[在我提供的链接之一(this)中,OP提到他/她从“垃圾”中清除了/etc/apt/sources.list
。但是,没有声明哪个垃圾或文件的编辑方式。
以下是我为我做(和工作)的事情。
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”,并且我未注释最后一行。
- 关闭并重新打开终端。
- Ran
sudo apt update
和sudo apt upgrade
。- 已通过
sudo apt install -y libcurl4
安装libcurl4。这仍然会卸载R及其组件。
- 已通过
。sudo apt install -y libcurl4-openssl-dev
安装libcurl4-openssl-dev
sudo apt update
和sudo apt upgrade
。sudo apt install -y r-base
r-base
libcurl4
未卸载。R
,并安装所需的软件包。