我最近升级到F24,现在在我的R session 中,我无法加载几个软件包,sp。 reshape2,latex2exp,knitr等。
我发现的最初问题是F24使用libicu56,而这些软件包期望使用libicu54。我遵循了this thread中的建议,以将符号链接(symbolic link)设置为所需的版本:
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包。
有任何想法吗?
最佳答案
在icu(Gentoo)更新之后,这才刚发生在我身上。另一个解决方案是删除并再次安装stringi,因为它正在寻找不再存在的特定库文件。
remove.packages('stringi')
install.packages('stringi')
如果
.Rprofile
触发library(stringi)
,则必须使用R --vanilla
启动 session 才能执行此操作,否则它将继续失败。另一个带有
--disable-pkg-config
的解决方案也可以工作。它将使stringi自己构建icu,而不是依赖系统的icu(源代码附带了icu的副本)。关于r - Fedora 24上的libicu和stringi导致R头痛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38987157/