Проблема с библиотекой R 4.0 lgfortran

Я пытаюсь установить на свой компьютер некоторые библиотеки с R (r версия 4.0). Я пытался запустить эту команду:

install.packages("libcoin")

Но это не удалось, здесь большая часть вывода:

* installing *source* package ‘libcoin’ ...
** package ‘libcoin’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG  -I'/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/mvtnorm/include'   -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-7BvS0x/r-base-4.0.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c libcoin-init.c -o libcoin-init.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG  -I'/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/mvtnorm/include'   -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-7BvS0x/r-base-4.0.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c libcoin.c -o libcoin.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o libcoin.so libcoin-init.o libcoin.o -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:10: libcoin.so] Error 1
ERROR: compilation failed for package ‘libcoin’
* removing ‘/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/libcoin’
Warning in install.packages :
  installation of package ‘libcoin’ had non-zero exit status
* installing *source* package ‘strucchange’ ...
** package ‘strucchange’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-7BvS0x/r-base-4.0.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c strucchange_functions.c -o strucchange_functions.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-7BvS0x/r-base-4.0.3=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c strucchange_init.c -o strucchange_init.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o strucchange.so strucchange_functions.o strucchange_init.o -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:10: strucchange.so] Error 1
ERROR: compilation failed for package ‘strucchange’
* removing ‘/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/strucchange’
Warning in install.packages :
  installation of package ‘strucchange’ had non-zero exit status
ERROR: dependency ‘libcoin’ is not available for package ‘coin’
* removing ‘/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/coin’
Warning in install.packages :
  installation of package ‘coin’ had non-zero exit status
ERROR: dependencies ‘strucchange’, ‘coin’ are not available for package ‘party’
* removing ‘/home/fbenedet/R/x86_64-pc-linux-gnu-library/4.0/party’
Warning in install.packages :
  installation of package ‘party’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/Rtmpr7uQ6y/downloaded_packages’

Я сразу подумал, что у него проблема с lgfortran, поскольку в этом сообщении говорится:

/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status

И я начал искать решение. Я проверил, есть ли у меня r-base-dev

sudo apt install r-base-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
r-base-dev is already the newest version (4.0.3-1.1804.0).

И я поискал библиотеки lgfortran в своей системе:

apt list --installed | egrep 'libgfortran'

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libgfortran-10-dev/focal-updates,focal-security,now 10.2.0-5ubuntu1~20.04 amd64 [installed]
libgfortran-7-dev/focal,now 7.5.0-6ubuntu2 amd64 [installed]
libgfortran-9-dev/focal-updates,focal-security,now 9.3.0-17ubuntu1~20.04 amd64 [installed,automatic]
libgfortran4/focal,now 7.5.0-6ubuntu2 amd64 [installed,automatic]
libgfortran5/focal-updates,focal-security,now 10.2.0-5ubuntu1~20.04 amd64 [installed,automatic]

и

ldconfig -p | grep libgfortran
    libgfortran.so.5 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgfortran.so.5
    libgfortran.so.4 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgfortran.so.4

На данный момент я заблудился и не знаю, как решить эту проблему. {{ 1}} Любая помощь, пожалуйста?

1
задан 23 April 2021 в 12:10

1 ответ

Приношу извинения сообществу... Оказывается, если вы используете альтернативную версию gcc, то библиотек может не оказаться в R.

У меня было следующее:

sudo update-alternatives --config g++
There are 2 choices for the alternative g++ (providing /usr/bin/g++).

  Selection    Path            Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-8   20        auto mode
  1            /usr/bin/g++-8   20        manual mode
  2            /usr/bin/g++-9   10        manual mode

и следующее:

sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path            Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-8   20        auto mode
  1            /usr/bin/g++-9   10        manual mode
  2            /usr/bin/gcc-8   20        manual mode
  3            /usr/bin/gcc-9   10        manual mode

и при переходе на gcc и g++ 9 проблема с библиотеками исчезает. Я узнал об этом через минуту после того, как выложил вопрос.

1
ответ дан 23 April 2021 в 23:18

Другие вопросы по тегам:

Похожие вопросы: