Использовать библиотеки, установленные R для других программ? - PullRequest
3 голосов
/ 03 ноября 2011

Когда R устанавливает пакет, содержащий другие программы / библиотеки (например, hdf5, SQLite), могу ли я использовать их в других программах? Например, у меня hdf5.so установлен в /Library/Frameworks/R.framework/Versions/2.13/Resources/library/hdf5/libs/x86_64/ - могу ли я использовать его вместо установки hdf5 для использования Python (h5py и т. Д .?).

1 Ответ

9 голосов
/ 03 ноября 2011

Как правило, нет. Вы также, возможно, неправильно читаете это: hdf5.so - это привязка от R к библиотекам hdf5. Например. когда (на коробке с Linux) я спрашиваю компоновщика, на что ссылается данная библиотека R, я получаю что-то вроде

edd@max:~$ ldd /usr/lib/R/site-library/XML/libs/XML.so 
        linux-vdso.so.1 =>  (0x00007fffcbf75000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fc0a1514000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fc0a12fc000)
        libR.so => /usr/lib/libR.so (0x00007fc0a0d92000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc0a09fe000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc0a07fa000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc0a0574000)
        libblas.so.3gf => /usr/lib/atlas-base/atlas/libblas.so.3gf (0x00007fc09fcff000)
        libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fc09fa1b000)
        libreadline.so.6 => /lib/libreadline.so.6 (0x00007fc09f7d8000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fc09f59c000)
        liblzma.so.2 => /usr/lib/liblzma.so.2 (0x00007fc09f37a000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007fc09f169000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc09ef61000)
        libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1 (0x00007fc09ed53000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc09eb34000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc0a1ab6000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc09e91e000)
        libncurses.so.5 => /lib/libncurses.so.5 (0x00007fc09e6d9000)
edd@max:~$ 

указывает, что сам пакет XML R зависит от libxml2.

Таким образом, вместо предоставления библиотек, которые вы ищете, они часто просто ссылаются на них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...