【问题标题】:libicu and stringi on Fedora 24 causing R headachesFedora 24 上的 libicu 和 stringi 导致 R 头痛
【发布时间】:2016-08-17 02:23:17
【问题描述】:

我最近升级到 F24,现在在我的 R 会话中我无法加载一些包,sp。 reshape2、latex2exp、knitr 等。

我发现最初的问题是 F24 使用 libicu56,而这些包需要 libicu54。我按照this thread 中的建议将符号链接设置为所需版本:

ln -s /usr/lib64/libicui18n.so.56 /usr/lib64/libicui18n.so.54    
ln -s /usr/lib64/libicuuc.so.56 /usr/lib64/libicuuc.so.54
ln -s /usr/lib64/libicudata.so.56 /usr/lib64/libicudata.so.54

最初的错误消失了,但现在我有了这个:

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
   unable to load shared object '/home/uname/R/x86_64-redhat-linux-gnu-library/3.3/stringi/libs/stringi.so':
  /home/uname/R/x86_64-redhat-linux-gnu-library/3.3/stringi/libs/stringi.so: undefined symbol: _ZTIN6icu_548ByteSinkE

这将我带到 R 的 stringi 包,但我无法加载它 - 它给出了相同的错误。

我已经更新了 F24 和所有的 R 包。

有什么想法吗?

【问题讨论】:

    标签: r fedora


    【解决方案1】:

    通过从 CRAN 下载 tar.gz 包,我能够在 fedora 24 上安装包 stringi,然后运行以下命令:

    R CMD INSTALL stringi_1.1.1.tar.gz --configure-args='--disable-pkg-config'
    

    【讨论】:

    • ... 只是为了让这个答案有更多的可见性,这是​​我在 1.4.6 + Linux 版本和尝试多种解决方案后发现的唯一修复。整行是install.packages("stringi_1.4.7.tar.gz", repos = NULL, type = "source", dependencies = TRUE, INSTALL_opts = '--no-lock', configure.args='--disable-pkg-config')
    【解决方案2】:

    这只是在 icu (Gentoo) 更新后发生在我身上。另一种解决方案是删除并重新安装 stringi,因为它正在寻找不再存在的特定库文件。

    remove.packages('stringi')
    install.packages('stringi')
    

    如果您的.Rprofile 触发library(stringi),那么您必须使用R --vanilla 启动会话才能执行此操作,否则它将一直失败。

    --disable-pkg-config 的另一个解决方案也可以。它将使 stringi 为自己构建 icu,而不是依赖于系统的(源附带 icu 的副本)。

    【讨论】:

    • 那行得通。问题似乎是一个损坏的依赖链。
    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 2016-09-29
    • 1970-01-01
    • 2016-12-31
    • 2011-03-15
    • 2012-07-29
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多