解決無法 update R package 問題: xfun

problem solver
rmarkdown
作者

紙魚

發佈於

2025年12月27日

寫作業寫到一半突然遇到問題,真得嚇死,趕快紀錄一下,順便遲交每月文章kpi

問題敘述

在寫 rmarkdown 文件時突然遇到 YMAL 部分(—處)跑出紅線:

Failed to run diagnostics: ! in callr subprocess.
Caused by error in `loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]])`:
! namespace 'xfun' 0.47 is being loaded, but >= 0.52 is requiredlintr

查了一下解法很簡單,只要用 R 安裝套件

install.packages("xfun")
packageVersion("xfun") #確認版本

即可,但我偏偏還碰到了結尾是 Permission denied 的錯誤,必須要關掉 Vscode 重開。此外還試了另一個(AI推薦的方法):

Sys.getenv("R_LIBS_USER") # 查看你的使用者套件路徑
install.packages("xfun", lib = Sys.getenv("R_LIBS_USER")) # 塞使用者套件路徑
install.packages("xfun", lib = "...../R/win-library/4.4") # 或是 .libPaths() 裡的第一個路徑直接貼上

但無效,現在想想可能是因為沒有徹底重開?總之,第三次重開後,再輸入

install.packages("xfun")

這時跳出來的 error 居然不同了,大概像這樣:

Error in unpackPkgZip(foundpkgs[okp, 2L], foundpkgs[okp, 1L], lib, libs_only,  :
  ERROR: failed to lock directory 'R\win-library\4.4' for modifying
Try removing '\R\win-library\4.4/00LOCK'

真的是太神奇,如果不是 AI 推薦方法成功一半就是重開大法有成吧?總之這個訊息的用意是要找出對應路徑下的資料夾(00LOCK)並刪除它,之後再來

install.packages("xfun")
packageVersion("xfun") #確認版本

即可成功消除紅線, rmarkdown 也能順利編譯成 PDF了,可喜可賀可口可樂。

其他苦主與討論

無符合的項目