簡體   English   中英

Package R 4.0.0之前安裝了'XXX':請重新安裝

[英]Package ‘XXX’ was installed before R 4.0.0: please re-install it

我正在使用 R 4.0.2。

我從這里手動安裝了來自cfcdaeStats5303lib的 2 個包。 我按照此處的說明下載了 Rtools 並使用它來安裝上面的軟件包。

問題是

writeLines('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', con = "~/.Renviron") # runs fine
Sys.which("make") #works fine
                               make 
"C:\\rtools40\\usr\\bin\\make.exe" 
install.packages("Stat5303libs_0.7-5.zip",repos=NULL,type="source") # these all run fine
install.packages("cfcdae_0.8-4.zip",repos=NULL,type="source")  # these all run fine

但是,當我嘗試運行這些庫時遇到以下問題。

Error: package or namespace load failed for ‘cfcdae’:
 package ‘cfcdae’ was installed before R 4.0.0: please re-install it

我在下面嘗試但仍然徒勞無功。

update.packages(ask=FALSE, checkBuilt=TRUE)

為什么會這樣? 是因為package太舊了嗎?

更新:

根據要求,我已經如下更改了我的.libPaths()並更新了SessionInfo()

> .libPaths()
[1] "C:/Users/UserME/Documents/R/win-library/4.0"
[2] "C:/Program Files/R/R-4.0.2/library"   

R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363)

Matrix products: default

locale:
[1] LC_COLLATE=English_Hong Kong SAR.1252  LC_CTYPE=English_Hong Kong SAR.1252   
[3] LC_MONETARY=English_Hong Kong SAR.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_Hong Kong SAR.1252    

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

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.4.6        rstudioapi_0.11     magrittr_1.5       
 [4] splines_4.0.2       MASS_7.3-51.6       tidyselect_1.1.0   
 [7] munsell_0.5.0       statmod_1.4.34      lattice_0.20-41    
[10] colorspace_1.4-1    R6_2.4.1            rlang_0.4.6        
[13] minqa_1.2.4         dplyr_1.0.0         tools_4.0.2        
[16] grid_4.0.2          nlme_3.1-148        gtable_0.3.0       
[19] ellipsis_0.3.1      lme4_1.1-23         tibble_3.0.1       
[22] lifecycle_0.2.0     numDeriv_2016.8-1.1 crayon_1.3.4       
[25] Matrix_1.2-18       nloptr_1.2.2.2      purrr_0.3.4        
[28] ggplot2_3.3.2       vctrs_0.3.1         glue_1.4.1         
[31] compiler_4.0.2      pillar_1.4.6        generics_0.0.2     
[34] scales_1.1.1        boot_1.3-25         lmerTest_3.1-2     
[37] pkgconfig_2.0.3  

所有軟件包都需要在新版本(4.0)下重新安裝。 我必須先刪除然后重新安裝所有軟件包。

以下對我有用:

# check your package library path 
.libPaths()

# grab old packages names
old_packages <- installed.packages(lib.loc = "/Library/Frameworks/R.framework/Versions/3.6/Resources/library")
old_packages <- as.data.frame(old_packages)
list.of.packages <- unlist(old_packages$Package)

# remove old packages 
remove.packages( installed.packages( priority = "NA" )[,1] )

# reinstall all packages 
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(list.of.packages,function(x){library(x,character.only=TRUE)})

zip 文件是用於 Windows 的預構建二進制package,而不是源 ZEFE90A8E604A67C840E8DZ8。 install.packages(*, type="source")安裝它不會有什么不同。 您需要聯系編寫這些包的人/人,以便為 R 4.0 重新構建它們,或者為您提供真實的源——這通常是一個.tar.gz文件。

當 R 從舊目錄讀取時,可能會發生此問題,例如 R 4.0.x 之前的目錄。

以下是解決此問題的幾種可能方法:

  • 檢查您的.libPaths() - R 可能正在從 R 3.xx 庫中讀取包,這會產生您遇到的錯誤。 或者,嘗試創建一個新的庫目錄(這很可能會解決問題)。
  • update.packages(ask=FALSE, checkBuilt=TRUE) (您已經嘗試過)
  • 刪除以前安裝的 R 及其相關目錄。

如果您在使用renv時遇到此問題,您可能需要查看您的renv緩存 我不得不刪除我的以強制我的項目使用新安裝的軟件包版本而不是舊版本。

在類似的情況下,我將“site-library”重命名為“old-site-library”,創建了一個新的空“site-library”文件夾並從那里成功進行。

萬一有人在運行revdepcheck::revdep_check()時遇到此錯誤消息,對我有用的是刪除我的 R 包目錄中的/revdep/文件夾。

這段代碼對我有用

  tmp = as.data.frame(installed.packages()) 
  max_version = max(as.numeric(substr(tmp$Built, 1,1)))
  tmp = tmp[as.numeric(substr(tmp$Built, 1,1)) < max_version,]
  lapply(tmp$Package, remove.packages)
  lapply(tmp$Package, function(x) install.packages(x, dependencies = TRUE))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM