Knit Store-Metrics.Rmd生成网页仪表盘时遇权限错误求助
解决方案:解决Rmd Knit时的权限拒绝与缓存错误
1. 修复路径拼写错误
第135行代码中cache.extra的文件路径缺少开头的斜杠,这会导致Knitr无法定位到目标文件,进而触发缓存异常。修正后的代码块头部应为:
{r, echo=False, warning=False, message=False, cache=TRUE, cache.extra=file.info("/srv/shiny-server/Store/Store_Report/Storedata.RData")$mtime}
2. 解决目录权限问题
核心问题是当前运行RStudio的用户没有写入/srv/shiny-server/Store/Store_report/目录的权限,可通过以下两种方式处理:
- 临时开放写入权限(测试用):
在终端执行命令:sudo chmod -R u+w /srv/shiny-server/Store/Store_report/ - 安全修改目录所有者(长期方案):
将目录所有者改为当前RStudio登录用户:sudo chown -R $USER:$USER /srv/shiny-server/Store/Store_report/
3. 手动指定缓存目录到有权限路径
如果不想修改服务器目录权限,可在Rmd文件开头显式设置缓存目录到用户有权限的路径(比如默认的~/R目录):
knitr::opts_chunk$set(cache.path = "~/R/Store-Metrics_cache/")
4. 显式设置工作目录
在Rmd开头添加代码,强制指定工作目录,避免getwd()返回根目录/的问题:
setwd("/srv/shiny-server/Store/Store_report/")
5. 清理旧缓存后重新Knit
先手动删除存在权限问题的旧缓存目录:
sudo rm -rf /srv/shiny-server/Store/Store_report/Store-Metrics_cache/
之后重启RStudio,重新运行代码再尝试Knit生成报告。
内容的提问来源于stack exchange,提问作者De Guen
相关产品推荐
相关产品推荐

