Не удалось установить Tidyverse из-за проблемы с Libcurl

#r #libcurl #tidyverse

#r #libcurl #tidyverse

Вопрос:

Недавно я обновился до R 3.5 и не смог установить пакет ‘tidyverse’. Другие пакеты устанавливаются нормально. Всякий раз, когда я пытаюсь установить tidyverse, я получаю следующее сообщение об ошибке.

 * installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/usr/include/x86_64-linux-gnu
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/nik/anaconda3/lib/R/library/curl’
ERROR: dependency ‘curl’ is not available for package ‘httr’
* removing ‘/home/nik/anaconda3/lib/R/library/httr’
ERROR: dependency ‘httr’ is not available for package ‘rvest’
* removing ‘/home/nik/anaconda3/lib/R/library/rvest’
ERROR: dependencies ‘httr’, ‘rvest’ are not available for package ‘tidyverse’
* removing ‘/home/nik/anaconda3/lib/R/library/tidyverse’

The downloaded source packages are in/tmp/RtmpHJ48Sk/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning messages:
1: In install.packages("tidyverse") :
  installation of package ‘curl’ had non-zero exit status
2: In install.packages("tidyverse") :
  installation of package ‘httr’ had non-zero exit status
3: In install.packages("tidyverse") :
  installation of package ‘rvest’ had non-zero exit status
4: In install.packages("tidyverse") :
  installation of package ‘tidyverse’ had non-zero exit status
  

Я запустил sudo apt-get install libcurl4-openssl-dev , как было предложено в других потоках для решения той же проблемы. Однако, похоже, это не решает проблему (фактически, libcurl уже был установлен, и его переустановка также не сработала).

Когда я проверяю $ PATH, я не вижу ‘pkg-config’, и PKG_CONFIG_PATH, похоже, не существует. Добавление /usr/bin/pkg-config к пути и настройка PKG_CONFIG_PATH /home/nik/anaconda3/lib/pkgconfig/libcurl.pc также, похоже, не устранили проблему. На данный момент я в тупике, поскольку не могу придумать ничего другого для удаления / переустановки, а также выяснить, почему libcurl не добавляется в path самостоятельно, когда я его устанавливаю. Буду признателен за любую помощь.

Комментарии:

1. Я не сталкивался с этой проблемой, но я сталкивался с подобными с другими зависимостями. Основываясь на сообщении об ошибке, вы можете попробовать указать свой путь к каталогу, который содержит libcurl, а не к самому libcurl, т.Е. PKG_CONFIG_PATH=/home/nik/anaconda3/lib/pkgconfig

2. После двух дней попыток делать все более глупые вещи, это немедленно исправило проблему. Спасибо!

3. Нет проблем. Поскольку это сработало, я пошел дальше и добавил это в качестве ответа.

Ответ №1:

попробуйте указать свой путь к каталогу, который содержит libcurl, а не к самому libcurl, т.Е.

 PKG_CONFIG_PATH=/home/nik/anaconda3/lib/pkgconfig
  

Комментарии:

1. не могли бы вы подробнее остановиться на этом ответе, пожалуйста. У меня аналогичная проблема

2.@ChristopherKavazos переменная среды должна указывать на каталог, а не на сам файл. OP изначально установил переменную env в файл /home/nik/anaconda3/lib/pkgconfig/libcurl.pc . Однако для переменной env следует установить каталог, который содержит файл libcurl.pc , он не должен быть установлен на сам фактический файл. В этом примере каталог является /home/nik/anaconda3/lib/pkgconfig , так что это должно быть значение, сохраненное в переменной среды PKG_CONFIG_PATH .