Установка пакета mclust v5.4.6 на R v4.0.1 на Ubuntu v20.04 зависает - PullRequest
0 голосов
/ 17 июня 2020

После выполнения 'Rscript -e "install.packages (' mclust ')" с R 4.0.1 в Ubuntu 20.04 процесс зависает во время подготовки пакета. Есть идеи, как исправить или отладить эту проблему?

ENV: R v4.0.1, G CC 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 Ответ

0 голосов
/ 18 июня 2020

Основываясь на ответе R-sig-debian на аналогичную проблему, я решил, что эта проблема связана с ошибкой в ​​версиях библиотек Blas и Lapack на основе pthread.

Пока ошибка не будет исправлена, обходной путь заключается в использовании библиотек libopenblas-openmp-blas и libopenblas-openmp-lapack .

Есть два способа использовать эти библиотеки.

  1. Удалите версию библиотек на основе pthread и установите версию библиотек на основе openmp.
  2. Переключитесь на версию библиотек на основе openmp через update-alternatives. Это можно сделать с помощью команды sudo update-alternatives --config <name>, где будет liblapack.so.3-x86_64- linux -gnu и libblas.so.3-x86_64- linux -гну .
...