【问题标题】:Installing xml2 in R in Fedora 27在 Fedora 27 的 R 中安装 xml2
【发布时间】:2023-04-02 17:55:01
【问题描述】:

我在运行 Fedora 27 的 RStudio 中安装 xml2 时遇到问题。在运行 install.packages('xml2') 时,我收到以下错误:

installing to /home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2/libs
** R
** inst
** preparing package for lazy loading
** help
Error : /tmp/Rtmp2sKZQZ/R.INSTALL689b37bd918d/xml2/man/read_xml.Rd:47: unable to load shared object '/home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2/libs/xml2.so':
  libicui18n.so.58: cannot open shared object file: No such file or directory
ERROR: installing Rd objects failed for package ‘xml2’
* removing ‘/home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2’
Warning in install.packages :
  installation of package ‘xml2’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpPs5Gzi/downloaded_packages’

我注意到在我的/usr/lib64/ 中,我只有libicui18n.so.57,所以我尝试在那里复制libicui18n.so.58,但出现以下错误:

installing to /home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2/libs
** R
** inst
** preparing package for lazy loading
** help
Error : /tmp/Rtmp908Ecf/R.INSTALL653812e0e41f/xml2/man/read_xml.Rd:47: unable to load shared object '/home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2/libs/xml2.so':
  libicuuc.so.58: cannot open shared object file: No such file or directory
ERROR: installing Rd objects failed for package ‘xml2’
* removing ‘/home/ryi/R/x86_64-redhat-linux-gnu-library/3.4/xml2’
Warning in install.packages :
  installation of package ‘xml2’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpPs5Gzi/downloaded_packages’

我注意到了同样的问题——我有这个库的 .57 版本,而不是 .58 版本。在我一遍又一遍地重复之前,这实际上是一个共享库问题吗?或者,有没有办法一次性解决这个问题?

我已经安装了 xml2 (libxml2-devel-2.9.5-2.fc27.x86_64)。

【问题讨论】:

  • 可能是权限问题。不要通过 RStudio 安装,而是使用 R.exe 在命令行中使用 sudo 运行安装。

标签: r fedora libxml2 xml2


【解决方案1】:

由于还没有人回答这个问题并且我找到了一个 hacky 解决方案,所以我想我会更新一下什么是有效的。

看来我的问题是,即使安装了 libxml2-devel,我在 /usr/lib64 中拥有的库版本与 RStudio 的 xml2 包所需的版本不同。例如,关于我上面的问题中提到的特定包libicuuc.so.58,在/usr/lib64 中只能找到libicuuc.so.57

运行locate libicuuc.so.58,发现anaconda3有正确版本的库,所以我通过简单的在$LD_LIBRARY_PATH后面加上~/anaconda3/lib,大致跟随instructions here,暂时解决了上述问题。

这有点hacky,但导致安装成功。

编辑(重要).bashrc 中将~/anaconda3/lib 添加到LD_LIBRARY_PATH 会导致登录循环,可能是因为Fedora 试图使用错误的库。为了解决这个问题,我添加了以下几行:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ryi/anaconda3/lib/
export LD_LIBRARY_PATH

R_HOME/etc/ldpaths

【讨论】:

  • 在 Fedora 30 上安装 libxml2-devel 对我有用。
【解决方案2】:

我已经通过源安装ICU4C解决了这个问题:

  1. ICU-Project下载ICU4C 58.2
  2. 编译
  3. 将库位置添加到$LD_LIBRARY_PATH

安装会成功。

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    相关资源
    最近更新 更多