gpt4 book ai didi

R:Ubuntu中的包安装问题

转载 作者:行者123 更新时间:2023-12-04 18:45:16 26 4
gpt4 key购买 nike

我在 Ubuntu 16.04 上运行(在联想 ThinkPak T450 上)。我已经安装了 R 版本 3.4.1,按照说明安装 here通过博主。

从这里开始,我想开始安装软件包,但是如果我在没有 root 权限的情况下从命令行运行 R,我将无法访问 CRAN 镜像。也就是说,当我运行 install.packages('dplyr') (或任何 install.packages('blah') )我收到以下错误

--- 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:
/opt/anaconda1anaconda2anaconda3/lib/tcl8.5 ./lib/tcl8.5 ./lib/tcl8.5 ./library ./library ./tcl8.5.18/library ./tcl8.5.18/library

出现该错误时,不会出现 CRAN 镜像对话框,因此不会安装软件包。注意:当我以 root 权限启动 R(即通过 > sudo R 启动)时,不会发生此错误,但我不想以 root 身份安装包。

提前感谢您可以发送给我的任何帮助!

编辑:指定 repo 也会导致错误(在下面的文件路径中,我用 user-name 替换了我的用户名)。

例如: install.packages('Rcpp',repos='http://cran.us.r-project.org')终止于:
installing to /home/user-name/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error: package or namespace load failed for ‘Rcpp’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/home/user-name/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs/Rcpp.so':
/home/user-name/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs/Rcpp.so: undefined symbol: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/user-name/R/x86_64-pc-linux-gnu-library/3.4/Rcpp’

例如, install.packages('dplyr',repos='http://cran.us.r-project.org')终止于:
installing to /home/user-name/R/x86_64-pc-linux-gnu-library/3.4/dplyr/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** preparing package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/user-name/R/x86_64-pc-linux-gnu-library/3.4/bindrcpp/libs/bindrcpp.so':
/home/user-name/anaconda3/lib/R/bin/exec/../../lib/../.././libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/user-name/R/x86_64-pc-linux-gnu-library/3.4/bindrcpp/libs/bindrcpp.so)
ERROR: lazy loading failed for package ‘dplyr’
* removing ‘/home/user-name/R/x86_64-pc-linux-gnu-library/3.4/dplyr’

最佳答案

正如 DirkEddelbuettel 在评论中指出的那样,问题是 Anaconda 和 R 的混合。要解决此问题:

  • 我首先查看 > conda list,从 Anaconda 卸载了 R 包。并意识到包裹是r-base ;因此运行 > conda remove r-base .
  • 接下来,通过查看 > which R 的输出,很明显我们仍在尝试从 ../anaconda3/bin/.. 执行目录。我怀疑有一种快速的方法可以通过导出或 bashrc 修改(或类似的东西)来改变它,但对我来说,最快的解决方法是运行 > sudo apt-get install r-base r-base-dev ,因为它们已经安装完毕,所以花了 0.2 秒,但它确实影响了系统查找适当目录的目录,对我来说这是 /usr/bin/R/ .

  • 从这里我已经能够安装我需要的一切。

    注意:回想起来,我怀疑当我通过 conda 安装 rpy2 时发生了“混合”。

    关于R:Ubuntu中的包安装问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815416/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com