Как исправить сломанные зависимости пакетов R после libgfortran.так обновление

[на практике это должно относиться ко всем дистрибутивам Lx, а также "концептуально" ко всем операционным системам Apple и M$.]

обновление R [base] на вашей системе может иногда нарушать некоторые зависимости
, в зависимости от установленных и используемых пакетов:
library("package_name").
Это случилось со мной недавно, после очередного обновления выпуска. Вот сообщение, которое я получил:

невозможно загрузить общий объект
/home/USER/R/x86_64-pc-linux-gnu-library/3.5/leaps/libs/leaps.so:


libgfortran.так.4: невозможно открыть разделяемый объектный файл: нет такого файла или каталога

package_dep_install_error

Я видел довольно много сообщений на SE, Github и в других местах с аналогичными отчетами, но без решения (по крайней мере для меня).

  • переустановить Р база делает ничего хорошего или плохо или ничего.
  • еще одна вещь, которая приходит на ум, чтобы понизить и удалить последние пакеты, чтобы вернуться в предыдущее состояние версии. Не удовлетворительный и осложненный для поддержания для прокатки релизов, таких как Arch Lx.

Итак, как вы это исправить в 7 вечера, когда вам нужно поставить R на работу "сейчас"?

19
задан Cbhihe
12.01.2023 15:14 Количество просмотров материала 3547
Распечатать страницу

1 ответ

1) $ find /usr/lib/ -name "libgfortran.*" Убедите себя, что просто составляют недостающую символическую ссылку libgfortran.so.4 -> libgfortran.so.5.0.0 не помогло.

(информация о версии "5.0.0" в символьной ссылке, будет меняться в зависимости от установленных версий.)

2) узнать ровно какие зависимости нарушаются. Это функция установленных пакетов. (Заменить /3.x в пути ниже по какой версии R base вы используете.)

$ ldd ~/R/x86_64-pc-linux-gnu-library/3.x/*/libs/*.so \
  | egrep '(so:$|not found)' > ~/R/x86_64-pc-linux-gnu-library/3.x/foobar

ldd печать зависимостей общих объектов. Любая строка в foobar перед строкой, где "не найден" показывает относится к поврежденному пакету, который необходимо удалить и переустановить.

3) переместить папки ранее обнаруженных поврежденных пакетов в папку резервного копирования по выбору yr. Пакеты Yr R обычно устанавливаются в ~/R/x86_64-pc-linux-gnu-library/3.x/ по умолчанию на lx. (Любое другое местоположение должно быть указано вами во время установки или глобально в вашем R конфигурационный файл.) В консоли R переустановите удаленные пакеты:

> install.packages(c("pkg_name_1","pkg_name_2",...), depend=T)

Обратите внимание, что не (removing | moving) существующие (сломанные) пакеты из своего местоположения и их повторная установка ничего не исправит. Вам нужно переместить папки сломанных пакетов подальше от их расположения, чтобы R мог перестроить зависимости.

4) загрузите интересующие библиотеки R и выполните специальные тесты из консоли R перед удалением ~/R/x86_64-pc-linux-gnu-library/3.x/foobar.

HTH.

0
отвечен Cbhihe 2023-01-13 23:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх