我已经安装了 R,但是当我尝试启动它时出现以下问题:
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/MY_MSG_RUN$ R
/mnt/galaxyData/custom/bin/lib64/R/bin/exec/R: error while loading shared libraries: liblzma.so.2: cannot open shared object file: No such file or directory
这是 ldd 命令,看看它在想什么?
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/MY_MSG_RUN$ ldd /mnt/galaxyData/custom/bin/lib64/R/bin/exec/R
linux-vdso.so.1 => (0x00007fff201ff000)
libRblas.so => /mnt/galaxyData/custom/bin/lib64/R/lib/libRblas.so (0x00007f9a04184000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a03e67000)
libreadline.so.6 => /lib/x86_64-linux-gnu/libreadline.so.6 (0x00007f9a03c24000)
liblzma.so.2 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9a03a20000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a03662000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a043b0000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f9a0343b000)
你们知道为什么它找不到 liblzma.so.2 以及我可以在哪里获取该文件并将其放在那里以便 R 找到它吗?
我看到 liblzma-dev 软件包似乎已安装,但 lzma 或 liblzma2 未安装。这个问题的另一个问题是我在共享主机上,因此无法执行 apt-get 来安装这些软件包。(至少我没有 root 权限)
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/MY_MSG_RUN$ dpkg -s liblzma-dev
Package: liblzma-dev
Status: install ok installed
Priority: optional
Section: libdevel
Installed-Size: 476
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Source: xz-utils
Version: 5.1.1alpha+20110809-3
Depends: liblzma5 (= 5.1.1alpha+20110809-3)
Suggests: liblzma-doc
Description: XZ-format compression library - development files
XZ is the successor to the Lempel-Ziv/Markov-chain Algorithm
compression format, which provides memory-hungry but powerful
compression (often better than bzip2) and fast, easy decompression.
.
The native format of liblzma is XZ; it also supports raw (headerless)
streams and the older LZMA format used by lzma. (For 7-Zip's related
format, use the p7zip package instead.) This package provides the
development library needed to build programs using liblzma.
Original-Maintainer: Jonathan Nieder <[email protected]>
Homepage: http://tukaani.org/xz/
答案1
鉴于你的机器似乎运行的是 ubuntu,我建议安装 R 作为ubuntu 软件包这样,包管理器将确保安装的库和二进制文件相互匹配。
编辑:我现在看到您没有 root 访问权限。但也许您可以运行debootstrap
使用fakeroot
来获取您自己的包管理器,并查看它安装了什么。或者您必须*.deb
自己解压文件,并尝试修复由硬编码路径引入的任何问题。设置LD_LIBRARY_PATH
可能是朝这个方向迈出的一大步。请注意,ubuntu 包将使用liblzma.so.5
,因此至少这似乎是您不需要单独安装的依赖项。
如果您不能使用包管理器安装的预编译二进制文件,请从源代码编译 R,以便根据系统上可用的库进行编译。
如果您也不能这样做,请从获取 R 二进制文件的同一来源获取库。
答案2
我最终这样做了,我不确定这是否会导致后续问题,但至少 R 启动了。
我建立了一个到 /usr/lib/x86_64-linux-gnu/liblzma.so.5 的符号链接,并将其命名为 liblzma.so.2。
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/MY_MSG_RUN$ cp /usr/lib/x86_64-linux-gnu/liblzma.so.5 /mnt/galaxyData/custom/bin/lib64/R/lib
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/MY_MSG_RUN$ cd /mnt/galaxyData/custom/bin/lib64/R/lib
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/bin/lib64/R/lib$ ls
liblzma.so.5 libRblas.so libRlapack.so
ubuntu@ip-xx-250-202:/mnt/galaxyData/custom/bin/lib64/R/lib$ ln -s liblzma.so.5 liblzma.so.2