Не удается загрузить libRlapack.so

#r #conda #openblas

#r #conda #openblas

Вопрос:

Я создал conda env со всеми R-пакетами, необходимыми для запуска моего кода, чтобы я мог поделиться им с коллегами. К сожалению, при загрузке пакетов возникают ошибки :

 Loading required package: BiocParallel
Error: package or namespace load failed for ‘DelayedArray’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/work/pterzian/.conda/envs/methdiffR-test/lib/R/library/Matrix/libs/Matrix.so':
  libRlapack.so: cannot open shared object file: No such file or directory
Error: package ‘DelayedArray’ could not be loaded
In addition: Warning message:
package ‘matrixStats’ was built under R version 3.6.3
Execution halted
  

Небольшое исследование этой проблемы привело меня к поиску, вероятно, плохого обходного пути. Я обнаружил, что это может быть связано с проблемой с именем символической ссылки :

 $ cd /.conda/envs/myRenv/lib

$ ls -ltrh 'liblapack.so'
liblapack.so -> libopenblasp-r0.3.10.so

$ ls -ltrh 'libblas.so'
libblas.so -> libopenblasp-r0.3.10.so
  

Изменение этих ссылок с правильным именем решило проблему загрузки пакета, и код работает нормально.

 $ mv liblapack.so libRlapack.so

$ mv libblas.so libRblas.so
  

Однако, как я и ожидал, когда я перестраиваю env после экспорта yml файла, он воспроизводит ошибку. Символическое имя в lib папке все равно нужно переименовать, что проблематично при совместном использовании env.

Файл yml :

 name: myRenv
channels:
  - r
  - conda-forge
  - bioconda
  - defaults
dependencies:
  - bioconductor-annotationdbi=1.48.0=r36_0
  - bioconductor-annotationfilter=1.10.0=r36_0
  - bioconductor-beachmat=2.2.0=r36he1b5a44_0
  - bioconductor-biobase=2.46.0=r36h516909a_0
  - bioconductor-biocfilecache=1.10.0=r36_0
  - bioconductor-biocgenerics=0.32.0=r36_0
  - bioconductor-biocparallel=1.20.0=r36he1b5a44_0
  - bioconductor-biomart=2.42.0=r36_0
  - bioconductor-biostrings=2.54.0=r36h516909a_0
  - bioconductor-bsgenome=1.54.0=r36_0
  - bioconductor-bsseq=1.22.0=r36he1b5a44_0
  - bioconductor-chippeakanno=3.20.0=r36_0
  - bioconductor-delayedarray=0.12.0=r36h516909a_0
  - bioconductor-delayedmatrixstats=1.8.0=r36_0
  - bioconductor-dss=2.34.0=r36h516909a_0
  - bioconductor-edger=3.28.0=r36hc6cf775_1
  - bioconductor-ensembldb=2.10.0=r36_0
  - bioconductor-genomeinfodb=1.22.0=r36_0
  - bioconductor-genomeinfodbdata=1.2.2=r36_0
  - bioconductor-genomicalignments=1.22.0=r36h516909a_0
  - bioconductor-genomicfeatures=1.38.0=r36_0
  - bioconductor-genomicranges=1.38.0=r36h516909a_0
  - bioconductor-go.db=3.10.0=r36_0
  - bioconductor-graph=1.64.0=r36h516909a_0
  - bioconductor-hdf5array=1.14.0=r36h516909a_0
  - bioconductor-iranges=2.20.0=r36h516909a_0
  - bioconductor-limma=3.42.0=r36h516909a_0
  - bioconductor-multtest=2.42.0=r36h516909a_0
  - bioconductor-protgenerics=1.18.0=r36_0
  - bioconductor-rbgl=1.62.1=r36he1b5a44_0
  - bioconductor-regioner=1.18.0=r36_0
  - bioconductor-rhdf5=2.30.0=r36he1b5a44_0
  - bioconductor-rhdf5lib=1.8.0=r36h516909a_0
  - bioconductor-rhtslib=1.18.0=r36hdb70ac9_1
  - bioconductor-rsamtools=2.2.0=r36he1b5a44_0
  - bioconductor-rtracklayer=1.46.0=r36h516909a_0
  - bioconductor-s4vectors=0.24.0=r36h516909a_0
  - bioconductor-summarizedexperiment=1.16.0=r36_0
  - bioconductor-xvector=0.26.0=r36h516909a_0
  - bioconductor-zlibbioc=1.32.0=r36h516909a_0
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=1_gnu
  - _r-mutex=1.0.1=anacondar_1
  - binutils_impl_linux-64=2.35=h18a2f87_9
  - binutils_linux-64=2.35=hc3fd857_29
  - bwidget=1.9.14=0
  - bzip2=1.0.8=h516909a_3
  - ca-certificates=2020.6.20=hecda079_0
  - cairo=1.16.0=hcf35c78_1003
  - certifi=2020.6.20=py39h079e4ff_2
  - curl=7.68.0=hf8cf82a_0
  - fontconfig=2.13.1=h86ecdb6_1001
  - freetype=2.10.4=he06d7ca_0
  - fribidi=1.0.10=h516909a_0
  - gcc_impl_linux-64=7.5.0=hd9e1a51_17
  - gcc_linux-64=7.5.0=he2a3fca_29
  - gettext=0.19.8.1=hf34092f_1004
  - gfortran_impl_linux-64=7.5.0=hfca37b7_17
  - gfortran_linux-64=7.5.0=ha081f1e_29
  - glib=2.66.2=he1b5a44_0
  - graphite2=1.3.13=he1b5a44_1001
  - gsl=2.6=h294904e_0
  - gxx_impl_linux-64=7.5.0=h7ea4de1_17
  - gxx_linux-64=7.5.0=h547f3ba_29
  - harfbuzz=2.4.0=h9f30f68_3
  - icu=64.2=he1b5a44_1
  - jpeg=9d=h516909a_0
  - kernel-headers_linux-64=2.6.32=h77966d4_13
  - krb5=1.16.4=h2fd8d38_0
  - ld_impl_linux-64=2.35=h769bd43_9
  - libblas=3.8.0=17_openblas
  - libcblas=3.8.0=17_openblas
  - libcurl=7.68.0=hda55be3_0
  - libedit=3.1.20191231=he28a2e2_2
  - libffi=3.2.1=he1b5a44_1007
  - libgcc-devel_linux-64=7.5.0=h42c25f5_17
  - libgcc-ng=9.3.0=h5dbcf3e_17
  - libgfortran-ng=7.5.0=hae1eefd_17
  - libgfortran4=7.5.0=hae1eefd_17
  - libglib=2.66.2=h0dae87d_0
  - libgomp=9.3.0=h5dbcf3e_17
  - libiconv=1.16=h516909a_0
  - liblapack=3.8.0=17_openblas
  - libopenblas=0.3.10=pthreads_hb3c22a3_5
  - libpng=1.6.37=hed695b0_2
  - libssh2=1.9.0=hab1572f_5
  - libstdcxx-devel_linux-64=7.5.0=h4084dd6_17
  - libstdcxx-ng=9.3.0=h2ae2ef3_17
  - libtiff=4.1.0=hc7e4089_6
  - libuuid=2.32.1=h14c3975_1000
  - libwebp-base=1.1.0=h516909a_3
  - libxcb=1.13=h14c3975_1002
  - libxml2=2.9.10=hee79883_0
  - lz4-c=1.9.2=he1b5a44_3
  - make=4.3=hd18ef5c_1
  - ncurses=6.2=he1b5a44_2
  - openssl=1.1.1h=h516909a_0
  - pandoc=2.11.0.2=hd18ef5c_0
  - pango=1.42.4=h7062337_4
  - pcre=8.44=he1b5a44_0
  - pip=20.2.4=py_0
  - pixman=0.38.0=h516909a_1003
  - pthread-stubs=0.4=h14c3975_1001
  - python=3.9.0=h2a148a8_4_cpython
  - python_abi=3.9=1_cp39
  - r-ade4=1.7_15=r36h7fa42b6_2
  - r-askpass=1.1=r36hcdcec82_2
  - r-backports=1.1.10=r36hcdcec82_0
  - r-base=3.6.2=h7ed4ef7_1
  - r-base64enc=0.1_3=r36hcdcec82_1004
  - r-bh=1.72.0_3=r36h6115d3f_1
  - r-biocmanager=1.30.10=r36h6115d3f_1
  - r-bit=4.0.4=r36hcdcec82_0
  - r-bit64=4.0.5=r36hcdcec82_0
  - r-bitops=1.0_6=r36hcdcec82_1004
  - r-blob=1.2.1=r36h6115d3f_1
  - r-callr=3.5.1=r36h142f84f_0
  - r-cellranger=1.1.0=r36h6115d3f_1003
  - r-clipr=0.7.1=r36h142f84f_0
  - r-codetools=0.2_17=r36h142f84f_0
  - r-cpp11=0.2.3=r36h142f84f_0
  - r-curl=4.3=r36hcdcec82_1
  - r-data.table=1.13.2=r36h0eb13af_0
  - r-dbi=1.1.0=r36h6115d3f_1
  - r-dbplyr=1.4.4=r36h6115d3f_0
  - r-desc=1.2.0=r36h6115d3f_1003
  - r-domc=1.3.7=r36hb0f4dca_0
  - r-dplyr=1.0.2=r36h0357c0b_0
  - r-ellipsis=0.3.1=r36hcdcec82_0
  - r-evaluate=0.14=r36h6115d3f_2
  - r-forcats=0.5.0=r36h6115d3f_1
  - r-foreach=1.5.1=r36h142f84f_0
  - r-formatr=1.7=r36h6115d3f_2
  - r-fs=1.5.0=r36h0357c0b_0
  - r-futile.logger=1.4.3=r36h6115d3f_1003
  - r-futile.options=1.0.1=r36h6115d3f_1002
  - r-generics=0.0.2=r36h6115d3f_1003
  - r-ggplot2=3.3.2=r36h6115d3f_0
  - r-glue=1.4.2=r36hcdcec82_0
  - r-gtools=3.8.2=r36hcdcec82_1
  - r-haven=2.3.1=r36hde08347_0
  - r-highr=0.8=r36h6115d3f_2
  - r-hms=0.5.3=r36h6115d3f_1
  - r-htmltools=0.5.0=r36h0357c0b_0
  - r-httr=1.4.2=r36h6115d3f_0
  - r-idr=1.2=r36_1003
  - r-isoband=0.2.2=r36h0357c0b_0
  - r-iterators=1.0.13=r36h142f84f_0
  - r-jsonlite=1.7.1=r36hcdcec82_0
  - r-lambda.r=1.2.4=r36h6115d3f_1
  - r-lifecycle=0.2.0=r36h6115d3f_1
  - r-locfit=1.5_9.4=r36hcdcec82_1
  - r-lubridate=1.7.9=r36h0357c0b_0
  - r-markdown=1.1=r36hcdcec82_1
  - r-matrixstats=0.57.0=r36hcdcec82_0
  - r-memoise=1.1.0=r36h6115d3f_1004
  - r-mime=0.9=r36hcdcec82_1
  - r-openssl=1.4.3=r36he5c4762_0
  - r-permute=0.9_5=r36h6115d3f_3
  - r-pillar=1.4.6=r36h6115d3f_0
  - r-pixmap=0.4_11=r36h6115d3f_1003
  - r-pkgbuild=1.1.0=r36h6115d3f_0
  - r-pkgload=1.1.0=r36h0357c0b_0
  - r-plogr=0.2.0=r36h6115d3f_1003
  - r-praise=1.0.0=r36h6115d3f_1004
  - r-prettyunits=1.1.1=r36h6115d3f_1
  - r-processx=3.4.4=r36hcdcec82_0
  - r-progress=1.2.2=r36h6115d3f_2
  - r-ps=1.4.0=r36h0eb13af_0
  - r-purrr=0.3.4=r36hcdcec82_1
  - r-r.methodss3=1.8.1=r36h6115d3f_0
  - r-r.oo=1.24.0=r36h6115d3f_0
  - r-r.utils=2.10.1=r36h6115d3f_0
  - r-rappdirs=0.3.1=r36hcdcec82_1004
  - r-rcurl=1.98_1.2=r36hcdcec82_0
  - r-readr=1.4.0=r36h1b71b39_0
  - r-readxl=1.3.1=r36hde08347_4
  - r-rematch=1.0.1=r36h6115d3f_1003
  - r-reshape2=1.4.4=r36h0357c0b_1
  - r-rlang=0.4.7=r36hcdcec82_0
  - r-rprojroot=1.3_2=r36h6115d3f_1003
  - r-rsqlite=2.2.1=r36h1b71b39_0
  - r-rstudioapi=0.11=r36h6115d3f_1
  - r-segmented=1.2_0=r36h6115d3f_0
  - r-seqinr=4.2_4=r36h0eb13af_0
  - r-snow=0.4_3=r36h6115d3f_1002
  - r-sp=1.4_2=r36hcdcec82_0
  - r-stringi=1.4.6=r36h0e574ca_2
  - r-stringr=1.4.0=r36h6115d3f_2
  - r-survival=3.2_7=r36hcdcec82_0
  - r-sys=3.4=r36hcdcec82_0
  - r-testthat=2.3.2=r36h0357c0b_1
  - r-tibble=3.0.4=r36h0eb13af_0
  - r-tidyselect=1.1.0=r36h6115d3f_0
  - r-tinytex=0.26=r36h6115d3f_0
  - r-vctrs=0.3.4=r36hcdcec82_0
  - r-venndiagram=1.6.20=r36h6115d3f_1002
  - r-whisker=0.4=r36h6115d3f_1
  - r-xfun=0.18=r36hcdcec82_0
  - r-xml=3.99_0.3=r36hcdcec82_1
  - r-xml2=1.3.2=r36h0357c0b_1
  - r-yaml=2.2.1=r36hcdcec82_1
  - r-zeallot=0.1.0=r36h6115d3f_1002
  - readline=8.0=he28a2e2_2
  - sed=4.8=hbfbb72e_0
  - setuptools=49.6.0=py39h079e4ff_2
  - sqlite=3.33.0=h4cf870e_1
  - sysroot_linux-64=2.12=h77966d4_13
  - tk=8.6.10=hed695b0_1
  - tktable=2.10=h555a92e_3
  - tzdata=2020d=h516909a_0
  - wheel=0.35.1=pyh9f0ad1d_0
  - xorg-kbproto=1.0.7=h14c3975_1002
  - xorg-libice=1.0.10=h516909a_0
  - xorg-libsm=1.2.3=h84519dc_1000
  - xorg-libx11=1.6.12=h516909a_0
  - xorg-libxau=1.0.9=h14c3975_0
  - xorg-libxdmcp=1.1.3=h516909a_0
  - xorg-libxext=1.3.4=h516909a_0
  - xorg-libxrender=0.9.10=h516909a_1002
  - xorg-renderproto=0.11.1=h14c3975_1002
  - xorg-xextproto=7.3.0=h14c3975_1002
  - xorg-xproto=7.0.31=h14c3975_1007
  - xz=5.2.5=h516909a_1
  - zlib=1.2.11=h516909a_1010
  - zstd=1.4.5=h6597ccf_2
  - r-assertthat=0.2.1=r36h6115d3f_0
  - r-cli=1.1.0=r36h6115d3f_0
  - r-colorspace=1.4_1=r36h96ca727_0
  - r-crayon=1.3.4=r36h6115d3f_0
  - r-dichromat=2.0_0=r36h6115d3f_4
  - r-digest=0.6.18=r36h96ca727_0
  - r-fansi=0.4.0=r36h96ca727_0
  - r-gridextra=2.3=r36h6115d3f_0
  - r-gtable=0.3.0=r36h6115d3f_0
  - r-labeling=0.3=r36h6115d3f_4
  - r-lattice=0.20_38=r36h96ca727_0
  - r-lazyeval=0.2.2=r36h96ca727_0
  - r-magrittr=1.5=r36h6115d3f_4
  - r-mass=7.3_51.3=r36h96ca727_0
  - r-matrix=1.2_17=r36h96ca727_0
  - r-mgcv=1.8_28=r36h96ca727_0
  - r-munsell=0.5.0=r36h6115d3f_0
  - r-nlme=3.1_139=r36ha65eedd_0
  - r-pkgconfig=2.0.2=r36h6115d3f_0
  - r-plyr=1.8.4=r36h29659fb_0
  - r-r6=2.4.0=r36h6115d3f_0
  - r-rcolorbrewer=1.1_2=r36h6115d3f_0
  - r-rcpp=1.0.1=r36h29659fb_0
  - r-scales=1.0.0=r36h29659fb_0
  - r-utf8=1.1.4=r36h96ca727_0
  - r-viridislite=0.3.0=r36h6115d3f_0
  - r-withr=2.1.2=r36h6115d3f_0
  

Комментарии:

1. Существует несоответствие между вашей системой (и ее внешними библиотеками LAPACK и BLAS, которые вы показываете) и системой, которая создала DelayedArray пакет, что, по-видимому, привело к тому, что он имеет встроенную зависимость от (поставляется с R и встроен, если не выбран внешний LAPACK / BLAS) libRlapack и libRblas (обратите внимание на «R» здесь). Похоже, это проблема. Я мало знаю о Conda, но я предлагаю вам посмотреть / спросить там.

2. @DirkEddelbuettel Спасибо за предложение. Я очень мало знаю о conda, поэтому могу спросить там.

3. Я бы попробовал удалить r в каналах. Неправильное смешивание каналов является частой причиной проблем с разделяемой библиотекой. Bioconda ожидает conda-forge > bioconda > defaults , поэтому добавление r миксов с наивысшим приоритетом в кучу сборок, с которыми сборки пакета Bioconda (т. Е. Все из Bioconductor) Не проверяются на совместимость. Однако вам также потребуется удалить все спецификации сборки пакета из YAML, поскольку они обычно блокируются в канале. Возможно, вы можете экспортировать новый YAML с conda env export --from-history помощью instead .

4. Я не могу воспроизвести: я не вижу проблем ни на компьютерах Mac OS X, ни на CentOS 7, загружающих библиотеки, упомянутые в OP, в средах с bioconductor-delayedmatrixstats=1.8.0 установленными и рекомендуемыми приоритетами канала Bioconda. Вот среда, которую я получаю на CentOS 7 .

5. Теперь все выглядит нормально, чтобы поделиться файлом yaml. На самом деле я думаю, что проблема исходила из ранее установленных пакетов в моей домашней Rlib папке. Как только я удалил папку, она не воспроизвела ошибку. Теперь я должен предупредить пользователей, чтобы они также удалили эту папку. Существует также часть кода конвейера, проверяющая наличие пакетов и устанавливающая их, если они отсутствуют, они установлены в этой Rlib папке, возможно, мне следует рассмотреть возможность удаления этого кода, теперь он работает с conda… В любом случае, я ценю помощь @merv!