Назад | Перейти на главную страницу

Запускает R, но не может найти liblzma.so.2

У меня установлен 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 для установки этих пакетов. (По крайней мере, у меня нет рута)

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 <ubuntu-devel-discuss@lists.ubuntu.com>
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 <jrnieder@gmail.com>
Homepage: http://tukaani.org/xz/

Поскольку на вашем компьютере работает ubuntu, я предлагаю установить R как пакет ubuntu. Таким образом, менеджер пакетов гарантирует, что установленные библиотеки и двоичные файлы соответствуют друг другу.

Редактировать: Теперь я вижу, что у вас нет root-доступа. Но, возможно, ты сможешь бежать debootstrap с помощью fakeroot чтобы получить свой собственный менеджер пакетов и посмотреть, что он установит. Или вам придется распаковать *.deb файлы самостоятельно и попытайтесь исправить любые проблемы, вызванные жестко заданными путями. Настройка LD_LIBRARY_PATH может стать большим первым шагом в этом направлении. Обратите внимание, что пакет ubuntu будет использовать liblzma.so.5, так что, по крайней мере, это зависимость, которую вам не нужно устанавливать отдельно.

Если вы не можете использовать предварительно скомпилированные двоичные файлы, установленные менеджером пакетов, скомпилируйте R из исходных кодов, чтобы он скомпилировался с библиотеками, доступными в вашей системе.

Если вы тоже не можете этого сделать, получите библиотеки из того же источника, из которого вы получили свои двоичные файлы R.

Я закончил тем, что сделал это, я не уверен, что это вызовет проблемы в будущем, но по крайней мере 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