#r #rhel7 #rstudio-server #jupyterhub
Вопрос:
Мы пытались установить пакет «связка» R
, но он не работает со следующим сообщением об ошибке:
ERROR: dependency ‘gsl’ is not available for package ‘copula’
- После установки GSL (GNU Scientific Linux) он продолжал жаловаться, но на этот раз со следующей ошибкой:
** package ‘gsl’ successfully unpacked and MD5 sums checked
checking for gsl-config... no
configure: error: gsl-config not found, is GSL installed? <<-----------
ERROR: configuration failed for package ‘gsl’
* removing ‘/opt/microsoft/ropen/3.5.3/lib64/R/library/gsl’
ERROR: dependency ‘gsl’ is not available for package ‘copula’
* removing ‘/opt/microsoft/ropen/3.5.3/lib64/R/library/copula’
- Мы также установили
gsl-devel
(yum install gsl-devel
); однако безуспешно. - GSL, установленный вручную:
wget https://mirror.ibcp.fr/pub/gnu/gsl/gsl-latest.tar.gz
tar xfz gsl-latest.tar.gz
./configure amp;amp; make amp;amp; make install
- Вернуться к
R
, попытался установитьcopula
снова, безуспешно, но с другим сообщением об ошибке:
Error: package or namespace load failed for ‘gsl’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/opt/microsoft/ropen/3.5.3/lib64/R/library/gsl/libs/gsl.so':
libgsl.so.25: cannot open shared object file: No such file or directory
Есть ли какой-либо способ установить GSL и сделать libgsl.so.25
его доступным copula
?
Спасибо.
Комментарии:
1. имеет ли это какое-либо отношение к jupyterhub?
2. Привет, Майкл, это действительно так. Мы используем RStudio на Jupyterhub.
3. но похоже, что проблема связана исключительно с использованием менеджера пакетов RStudio в linux, а не с самой jupyterhub.
Ответ №1:
Мы попробовали следующий обходной путь, который решил проблему:
- Перед установкой установите следующие переменные среды
copula
:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
- Установить
copula
с помощьюR
:
> install.packages("copula")
- Вручную скопируйте
libgsl.so.25
в/usr/lib64
[root@worksation ~]# ldd /opt/microsoft/ropen/3.5.3/lib64/R/library/gsl/libs/gsl.so
linux-vdso.so.1 => (0x00007ffc9b838000)
libgsl.so.25 => not found <<<<------------- MISSING
libgslcblas.so.0 => /lib64/libgslcblas.so.0 (0x00007fd237b72000)
libm.so.6 => /lib64/libm.so.6 (0x00007fd237870000)
libR.so => /usr/lib64/R/lib/libR.so (0x00007fd2371f2000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd236e25000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd237fcd000)
libRblas.so => /usr/lib64/R/lib/libRblas.so (0x00007fd234931000)
libgfortran.so.3 => /lib64/libgfortran.so.3 (0x00007fd23460f000)
libquadmath.so.0 => /lib64/libquadmath.so.0 (0x00007fd2343d3000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007fd23418d000)
libtre.so.5 => /lib64/libtre.so.5 (0x00007fd233f7d000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007fd233d06000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd233aa4000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fd23387e000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd23366e000)
libz.so.1 => /lib64/libz.so.1 (0x00007fd233458000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd233250000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fd23304c000)
libicuuc.so.50 => /lib64/libicuuc.so.50 (0x00007fd232cd3000)
libicui18n.so.50 => /lib64/libicui18n.so.50 (0x00007fd2328d4000)
libgomp.so.1 => /lib64/libgomp.so.1 (0x00007fd2326ae000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd232498000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd23227c000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fd232052000)
libicudata.so.50 => /lib64/libicudata.so.50 (0x00007fd230a80000)
libstdc .so.6 => /lib64/libstdc .so.6 (0x00007fd230779000)
- Чтобы найти libgsl.so.25:
[root@workstation /usr/lib64]# find / -name libgsl.so.25 2>/dev/null
/usr/local/lib/libgsl.so.25
/root/gsl-2.7/.libs/libgsl.so.25
- Затем:
cp -p /usr/local/lib/libgsl.so.25 /usr/lib64/
Конечно, есть другой подход к решению этой проблемы, но этот подход отлично сработал для нас. Спасибо.