Установка пакета mclust v5.4.6 на R v4.0.1 на Ubuntu v20.04 зависает
После выполнения 'Rscript -e "install.packages('mclust')" с R 4.0.1 в Ubuntu 20.04 процесс зависает во время подготовки пакета. Есть идеи, как исправить или отладить эту проблему?
ENV: R v4.0.1, GCC v9, Ubuntu v20.04
CMD: Rscript -e "install.packages('mclust')"
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/mclust_5.4.6.tar.gz'
Content type 'application/x-gzip' length 2877519 bytes (2.7 MB)
==================================================
downloaded 2.7 MB
* installing *source* package ‘mclust’ ...
** package ‘mclust’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gfortran -fno-optimize-sibling-calls -fpic -g -O2 -fdebug-prefix-map=/build/r-base-dEscXG/r-base-4.0.1=. -fstack-protector-strong -c dmvnorm.f -o dmvnorm.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG -fpic -g -O2 -fdebug-prefix-map=/build/r-base-dEscXG/r-base-4.0.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c init.c -o init.o
gfortran -fno-optimize-sibling-calls -fpic -g -O2 -fdebug-prefix-map=/build/r-base-dEscXG/r-base-4.0.1=. -fstack-protector-strong -c mclust.f -o mclust.o
gfortran -fno-optimize-sibling-calls -fpic -g -O2 -fdebug-prefix-map=/build/r-base-dEscXG/r-base-4.0.1=. -fstack-protector-strong -c mclustaddson.f -o mclustaddson.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o mclust.so dmvnorm.o init.o mclust.o mclustaddson.o -llapack -lblas -lgfortran -lm -lquadmath -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/00LOCK-mclust/00new/mclust/libs
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
1 ответ
Основываясь на ответе R-sig-debian на аналогичную проблему, я решил, что эта проблема связана с ошибкой в версиях библиотек Blas и Lapack на основе pthread.
Пока ошибка не будет исправлена, можно использовать библиотеки libopenblas-openmp-blas и libopenblas-openmp-lapack.
Есть два способа добиться использования этих библиотек.
- Удалите версию библиотек на основе pthread и установите версию библиотек на основе openmp.
- Переключитесь на версию библиотек на основе openmp через
update-alternatives
. Это можно сделать черезsudo update-alternatives --config <name>
команда с является liblapack.so.3-x86_64-linux-gnu и libblas.so.3-x86_64-linux-gnu.