我有 Ubuntu 16.04 和 R 3.4.3。当我运行
install.packages("geojson", dep=TRUE)
在 R 中,我收到以下错误:
依赖项“protolite”不适用于包“geojson”
因此我跑
install.packages("protolite", dep=TRUE)
我得到:
Configuration failed because protobuf was not found. Try installing:
* deb: libprotobuf-dev (Debian, Ubuntu, etc)
* rpm: protobuf-devel (Fedora, EPEL)
* csw: protobuf_dev (Solaris)
* brew: protobuf (OSX)
If protobuf is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a protobuf.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=...'
然而,protoc --version
在终端运行我得到
libprotoc 2.6.1
看来我安装了最新版本。我还尝试protobuf.pc
复制/usr/lib/pkconfig/
并PKG_CONFIG_PATH
设置
export PKG_CONFIG_PATH=/usr/lib/pkgconfig
但没有成功。我不知道如何检查是否pkg-config
在我的 中
PATH
,也不知道如何遵循后面的手动说明。特别是,我不知道应该为INCLUDE_DIR=...
和写入哪些目录LIB_DIR=...
。
我该如何继续?
答案1
您可以使用下列操作安装 R 包
#1. add R 3.4.3 repository if not added before
cat <<EOF | sudo tee /etc/apt/sources.list.d/r-cran.list
deb https://cloud.r-project.org/bin/linux/ubuntu xenial/
EOF
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
#2. add repository for libjq-dev
sudo add-apt-repository -y ppa:opencpu/jq
#3. update package lists
sudo apt-get update
#4. install R and dependencies
sudo apt-get install r-base-dev r-base-core libjq-dev libcurl4-openssl-dev \
libssl-dev libprotobuf-dev libjq-dev libv8-3.14-dev protobuf-compiler
#5. launch R and install geojson package:
R
> install.packages("geojson", dep=TRUE)
答案2
我刚刚发现我的/usr/bin/pkg-config
(与 Ubuntu 18.04 捆绑的 0.29.1 版本)漏洞百出。它不会查看 PKG_CONFIG_PATH 中提到的目录(调试输出中未看到自定义目录)。我不得不从源代码构建较新的版本(0.29.2)。这解决了我的问题。
希望它能帮助别人