You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

survminer包加载失败:cli版本冲突与R包重置/加载顺序问询

问题描述

执行以下命令安装并加载survminer包:

install.packages('survminer')
library(survminer)

出现报错:

Loading required package: ggpubr
Error: package or namespace load failed for ‘ggpubr’ in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]):
 namespace ‘cli’ 3.2.0 is already loaded, but >= 3.4.0 is required
Error: package ‘ggpubr’ could not be loaded

安装survminer时已自动安装cli 3.6.1,但加载新版本cli时,旧版cli 3.2.0因被pillar依赖无法卸载;pillar又被tibble、dplyr依赖,tibble则依赖于dplyr、ggplot2。尝试卸载dplyr、ggplot2、tibble后仍无法卸载pillar,多次重启R也无效。

会话信息:

R version 4.1.1 (2021-08-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.3 LTS

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

loaded via a namespace (and not attached):
 [1] rstudioapi_0.13  magrittr_2.0.2   tidyselect_1.2.0 munsell_0.5.0    colorspace_2.0-2
 [6] R6_2.5.1         rlang_1.1.1      fansi_1.0.2      dplyr_1.1.2      tools_4.1.1     
[11] grid_4.1.1       gtable_0.3.0     utf8_1.2.2       cli_3.2.0        withr_2.5.0     
[16] tibble_3.2.1     lifecycle_1.0.3  ggsignif_0.6.4   vctrs_0.6.2      glue_1.6.1      
[21] compiler_4.1.1   pillar_1.9.0     generics_0.1.2   scales_1.2.1     lubridate_1.8.0 
[26] pkgconfig_2.0.3

注:无法更新R版本,也无法卸载预安装的pillar包(执行remove.packages提示无该包)。

解决方案

方法1:使用自定义库路径隔离依赖

通过创建独立的包目录,优先使用该目录下的新版本包,避免与系统预安装包冲突:

  1. 完全关闭R,重新启动一个未加载任何包的干净会话(可通过终端运行R --vanilla跳过自定义配置)
  2. 创建自定义库目录:
    dir.create("~/R_custom_lib", recursive = TRUE)
    
  3. 将自定义目录设为优先加载路径:
    .libPaths(c("~/R_custom_lib", .libPaths()))
    
  4. 安装最新版cli到自定义目录:
    install.packages("cli", lib = "~/R_custom_lib")
    
  5. 安装ggpubr和survminer:
    install.packages(c("ggpubr", "survminer"), lib = "~/R_custom_lib")
    
  6. 加载包时指定自定义库路径:
    library(cli, lib.loc = "~/R_custom_lib")
    library(survminer, lib.loc = "~/R_custom_lib")
    

方法2:强制加载新版本cli

在干净会话中直接定位并加载新版本cli,再加载survminer:

  1. 重启R,用sessionInfo()确认cli未被加载
  2. 定位并加载最新版cli:
    library(cli, lib.loc = find.package("cli", quiet = FALSE)[which.max(packageVersion("cli"))])
    
  3. 加载survminer:
    library(survminer)
    

方法3:强制卸载旧版cli命名空间(风险较高)

若上述方法无效,可尝试强制卸载已加载的旧版cli命名空间(可能导致其他依赖包临时报错,需谨慎):

  1. 卸载旧版cli命名空间:
    unloadNamespace("cli")
    
  2. 重新加载新版本cli:
    library(cli)
    
  3. 加载survminer:
    library(survminer)
    

内容的提问来源于stack exchange,提问作者Bethan R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 14:13:16