重启RStudio后运行pkgload::load_all()仍需用renv重复安装dm、sf包?
问题描述
- 每次运行
pkgload::load_all()或devtools::load_all(),都会弹出提示要求安装dm和sf包,但选择「Yes」后无任何安装操作 - 重启RStudio后必须重新触发安装,且
sf会强制从源码编译 - 直接调用
library(dm)或library(sf)时,出现动态库加载错误,提示找不到libgfortran.5.dylib文件
解决方案
1. 修复系统Fortran依赖
报错核心原因是macOS缺少Fortran运行库libgfortran,用Homebrew安装即可:
brew install gcc
安装完成后,系统会自动配置好对应的库文件路径。
2. 清理renv缓存并重建依赖
renv缓存中的包可能因编译环境不兼容损坏,需要彻底清理后重新安装:
- 关闭RStudio,在终端执行命令删除缓存目录:
rm -rf ~/Library/Application\ Support/renv/cache - 重新打开RStudio,进入项目目录,执行R命令:
renv::clean() renv::restore(rebuild = TRUE)rebuild = TRUE会强制所有依赖从源码重新编译,适配当前系统环境。
3. 确认项目依赖声明正确
检查项目根目录的DESCRIPTION文件,确保dm和sf已添加到Imports字段(示例如下):
Imports: dm (>= 1.0.0), sf (>= 1.0.0)
然后执行命令安装所有依赖:
devtools::install_deps(dependencies = TRUE)
4. 验证修复效果
执行以下命令确认问题解决:
library(dm) library(sf) pkgload::load_all()
内容的提问来源于stack exchange,提问作者layal
相关产品推荐
相关产品推荐

