Я полностью понимаю, что это невероятно специфическая ситуация, которую лучше было бы адресовать моим системным администраторам, а не StackOverflow, но я все равно решил попробовать.
Я работаю в высокопроизводительной вычислительной среде (OpenHPC), в которой у меня нет root-доступа. Кроме того, системные администраторы делают некоторые пакеты программного обеспечения доступными по всему миру через пакет LMOD. Для пакетов программного обеспечения, которые еще не установлены предварительно, рекомендуется устанавливать пакеты через conda
или собирать их из исходного кода.
Я пытаюсь установить пакет R clarabel
. На данный момент я установил Rust и Cargo, используя инструкции здесь, и попытался install.packages("clarabel")
в среде Conda.
Первоначально это вернуло ошибку, содержащую
/usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -llapack
/usr/bin/ld: cannot find -lgfortran
Простое использование module load gnu12/12.2.0
исправлено cannot find -lgfortran
, но следующая проблема с blas
и lapack
сохраняется даже после запуска module load openblas/0.3.21
:
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL = "C" PATH = "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin:/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/.cargo/bin:/<sysname>/home/<uname>/.conda/envs/test-env/bin:/<sysname>/software/spack/linux-almalinux9-cascadelake/gcc-11.4.1/openmpi-4.1.6-un62tcwp7nzszg3ezp7cum7yfufdprrc/bin:/opt/ohpc/pub/mpi/libfabric/1.18.0/bin:/opt/ohpc/pub/mpi/ucx-ohpc/1.15.0/bin:/opt/ohpc/pub/libs/hwloc/bin:/opt/ohpc/pub/compiler/gcc/12.2.0/bin:/<sysname>/software/utils/miniconda3/condabin:/<sysname>/home/<uname>/.cargo/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/<sysname>/home/<uname>/.local/bin:/<sysname>/home/<uname>/bin:/<sysname>/home/<uname>/.cargo/bin" VSLANG = "1033" "cc" "-Wl,--version-script=/tmp/rustccOUIAd/list" "-Wl,--no-undefined-version" "-m64" "/tmp/rustccOUIAd/symbols.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.00.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.01.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.02.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.03.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.04.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.05.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.06.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.07.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.08.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.09.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.10.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.11.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.12.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.13.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.14.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.clarabel.16fbe4446bc2150f-cgu.15.rcgu.o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/clarabel-92696915beeca31e.18c40nrhdgx63nm9.rcgu.o" "-Wl,--as-needed" "-L" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps" "-L" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libindexmap-a1870293f17fe811.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libequivalent-13c4f6694b43752a.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libhashbrown-ee45ab3aaf8cbcfb.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libserde_json-742f6f4c6c3e851d.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libitoa-660c93c0233b413a.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libryu-ea35bc21b3a1860f.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libamd-118b2cf4ec891faa.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libblas-d57adeeca52efda7.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libblas_sys-b44f50ded7d7f210.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/liblapack-8ad229381301a14a.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libnum_complex-2841f00af8b703ee.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/liblapack_sys-44be8b0329b78d26.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/liblibc-799eff0394aa6d50.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/liblapack_src-2ccfa321d47d7bdf.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libblas_src-95093de9de072d9b.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libr_src-1aa13c7ad7e0fe1b.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libcfg_if-114d8cc2aed33208.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/liblazy_static-89f61e42525efa42.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libderive_builder-6a575a43a528ce4a.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libserde-293da9773986da66.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libitertools-cfd01c76e19a056c.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libeither-ec1734cb47f0bd2a.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libnum_traits-294e66ee00715eb2.rlib" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libthiserror-6f6728d6b3509612.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-d5189b81a4fa4d36.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-005b27ec5a56507a.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-c88c426dd6780435.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemchr-e74540b31113a555.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-8751b61bd13c15cf.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-a8b99dba9f449259.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-f0068d76172a0372.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-c16dfaf47799564e.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-bfa26dd63e299db5.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-75a2330a693e738f.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-76779dce1f7ab63d.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-01c5cc588623cb35.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-07bb9745ec737292.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-6eacdcc91004cefb.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-ae2488b58226c836.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-52acaddcaaba04c6.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-326b78eac9ecd050.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-307ebf19f0f13d30.rlib" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-d9076ee5964191bf.rlib" "-Wl,-Bdynamic" "-lblas" "-llapack" "-lgfortran" "-lm" "-lgomp" "-lquadmath" "-lpthread" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/<sysname>/home/<uname>/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/tmp/RtmpxuuYQp/R.INSTALL845641d0a9cc/clarabel/src/rust/target/release/deps/libclarabel-92696915beeca31e.so" "-Wl,--gc-sections" "-shared" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
= note: /usr/bin/ld: cannot find -lblas
/usr/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status
error: could not compile `clarabel` (lib) due to 1 previous error
Я вижу, что каталог <sysname>/home/<uname>/.conda/envs/<env-name>/lib
содержит следующие файлы:
libopenblasp-r0.3.21.so
libopenblas.so
libopenblas.so.0
libblas.so
liblapack.so
где нижние 4 файла являются символическими ссылками на первый.
Я попробовал export "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<sysname>/home/<uname>/.conda/envs/<env-name>/lib"
, но ошибка выше осталась. Буду очень признателен за вашу помощь!
Я исправил ошибку, добавив следующие две строки в ~/.bashrc
:
export LIBRARY_PATH=$LIBRARY_PATH:/hb/home/epawl/.conda/envs/test-env/lib/
export CPATH=$CPATH:/hb/home/epawl/.conda/envs/test-env/include
Но теперь у меня новая ошибка. Вышеуказанная -lblas -llapack
ошибка произошла при компиляции clarabel
. Теперь, когда clarabel
успешно компилируется, остальная часть журнала выглядит следующим образом:
Finished `release` profile [optimized] target(s) in 2m 33s
rm -Rf /tmp/RtmpN2SScY/R.INSTALL8cafd3612e47c/clarabel/src/rust/.cargo
rm -Rf ./rust/vendor
rm -Rf /tmp/RtmpN2SScY/R.INSTALL8cafd3612e47c/clarabel/src/rust/target/release/build
x86_64-conda-linux-gnu-cc -shared -L/hb/home/epawl/.conda/envs/test-env/lib/R/lib -L/hb/home/epawl/.conda/envs/test-env/lib -o clarabel.so init.o -L/hb/home/epawl/.conda/envs/test-env/lib -lblas -llapack -L/hb/home/epawl/.conda/envs/test-env/lib/R/lib -lR
installing to /hb/home/epawl/R/x86_64-conda-linux-gnu-library/4.3/00LOCK-clarabel/00new/clarabel/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘clarabel’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/hb/home/epawl/R/x86_64-conda-linux-gnu-library/4.3/00LOCK-clarabel/00new/clarabel/libs/clarabel.so':
/hb/home/epawl/R/x86_64-conda-linux-gnu-library/4.3/00LOCK-clarabel/00new/clarabel/libs/clarabel.so: undefined symbol: savvy_clarabel_solve__ffi
Error: loading failed
Я подумал, что смогу это исправить, добавив к .bashrc
строку
export LIBRARY_PATH=$LIBRARY_PATH:/hb/home/epawl/.conda/envs/test-env/lib/
export LIBRARY_PATH=$LIBRARY_PATH:/hb/home/epawl/R/x86_64-conda-linux-gnu-library/4.3/00LOCK-clarabel/00new/clarabel/libs
export CPATH=$CPATH:/hb/home/epawl/.conda/envs/test-env/include
но это ничего не меняет. conda install -c conda-forge openblas lapack
тоже не помогает.
Редактировать 2: приведенный выше фрагмент кода является опечаткой; Я имел в виду conda install -c conda-forge blas lapack
, хотя я тоже пробовал conda install -c conda-forge openblas openblas-devel
и это тоже не работает.
@jay.sf Спасибо за предложение! Это не помогло; пожалуйста, смотрите Edit 1 для получения дополнительной информации об этом.
Оказывается, удаление R и всех пакетов, удаление всех пакетов и сред conda и переустановка всего в новой среде conda все исправили.
Похоже, у меня были две конфликтующие установки R, и это вызвало проблему. Либо это, либо недавнее обслуживание (обновление ОС), проведенное в кластере HPC, что-то сломало.
Уже пробовали
conda install -c conda-forge blas lapack
?