簡體   English   中英

共享 HPC 集群環境中的 R tcl 問題

[英]R tcl issue on shared HPC cluster environment

我在讓 R 在我所在機構的共享集群上正常運行時遇到了一些問題,我沒有 root 訪問權限。 有些東西會起作用,但是當我需要安裝包等時它會變得棘手。我試圖解決的當前問題是在嘗試加載插入符號包時出現以下錯誤:

Loading required package: lattice
Loading required package: ggplot2
Error: package or namespace load failed for ‘ggplot2’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/cifs/hariri-long/Scripts/Tools/R/packages/rlang/libs/rlang.so':
  /cifs/hariri-long/Scripts/Tools/R/packages/rlang/libs/rlang.so: undefined symbol: R_removeVarFromFrame
Error: package ‘ggplot2’ could not be loaded
Execution halted

我發現此頁面建議我按如下方式安裝 rlang:

> install.packages("rlang",type="source")
Installing package into ‘/cifs/hariri-long/Scripts/Tools/R/packages’
(as ‘lib’ is unspecified)
--- Please select a CRAN mirror for use in this session ---
Error: .onLoad failed in loadNamespace() for 'tcltk', details:
  call: fun(libname, pkgname)
  error: Can't find a usable init.tcl in the following directories:
    /usr/share/tcl8.5 ./lib/tcl8.5 ./lib/tcl8.5 ./library ./library ./tcl8.5.13/library ./tcl8.5.13/library

但我得到上面的 tcl 錯誤。 因為我在其他線程中看到過這個:

> capabilities("tcltk")
tcltk
 TRUE

看起來我系統上的 tcl 是 8.6,但我不知道如何告訴 R 尋找那個版本。

$ whereis tcl
tcl: /usr/lib64/tcl8.6 /usr/include/tcl.h /usr/share/tcl8.6
$ which R
/opt/apps/rhel7/R-3.6.0/bin/R

有任何想法嗎? 操作系統是 CentOS 8。謝謝!

我最終決定嘗試使用更新的 R 版本 (4.1.1) 來解決這個問題。 一開始我很猶豫要不要這樣做,因為我遇到了在更新的 R 版本中我需要的包的可用性/兼容性的問題,但我沒有得到任何解決這個問題的方法。 我認為由於系統上安裝了 TCL 8.6,更新版本的 R 可能可以使用它,而且我似乎是對的,因為我已經克服了切換時遇到的第一個錯誤。

我確實收到了有關加載共享庫 Libtk8.6.so 的問題的新錯誤。 所以我從這里下載了 .so 文件並使用 rpm2cpio 將它解壓到我的主目錄(我沒有 root 訪問權限所以我不能只使用 yum install 等)。 在那之后,我只需要為新的 R 版本重新安裝我的所有軟件包就可以了!

暫無
暫無

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

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