R语言中‘inactive developer path’是什么?sf包更新报错如何解决?
1. R语言里的‘inactive developer path’到底是什么?
其实这个词说的就是系统里没激活的开发者工具路径啦。像sf这种需要编译的R包,得靠系统里的开发者工具链(比如Mac的Xcode命令行工具、Windows的Rtools、Linux的GCC这些)才能编译成功。如果这些工具的路径没被系统正确识别,或者工具本身没装,R在编译源码包的时候就会跳出相关提示——说白了就是R找不到编译需要的工具在哪儿,没法继续干活儿。
2. 更新sf包遇到编译问题的解决思路
先把你碰到的错误场景贴出来方便对照:
存在可用的二进制版本,但源代码版本更新:
binary source needs_compilation
sf 0.5-5 0.6-0 TRUE
是否要从源代码安装需要编译的包?y/n: y
正在安装源包‘sf’
尝试获取URL 'https://cran.rstudio.com/src/contrib/sf_0.6-0.tar.gz'
内容类型 'applicatio...
给你几个实用的解决方向,你可以挨个试试:
- 先试试装二进制包(最省心):如果不是非得用最新的0.6.0版本,直接选
n装现成的二进制版0.5.5就行,完全不用编译,能避开大部分依赖坑。要是一定要最新版,再往下看。 - 先把系统的开发者工具补全:
- Mac用户:打开终端输入
xcode-select --install,跟着提示装完Xcode命令行工具,重启R之后再试安装sf。 - Windows用户:去R官网下载对应版本的Rtools,安装的时候一定要勾选“Add Rtools to system PATH”,装完重启R,再跑
install.packages("sf", type = "source")。 - Linux用户:得先装
sf依赖的底层库,比如Debian/Ubuntu系统在终端跑sudo apt-get install libgdal-dev libgeos-dev libproj-dev,CentOS/RHEL就用sudo yum install gdal-devel geos-devel proj-devel,装完这些再回R里装sf。
- Mac用户:打开终端输入
- 手动设置编译环境变量:有时候工具装了,但R找不到路径,你可以在R里先运行这段代码设置环境变量(路径根据你的系统调整):
之后再尝试安装Sys.setenv(PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/lib/pkgconfig")sf。 - 检查网络和镜像源:从错误信息看,下载源码包的时候可能断网了,或者官方镜像速度慢。你可以切换到国内的CRAN镜像,比如在R里跑:
然后再执行options(repos = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))install.packages("sf")试试。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

