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

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

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

package_dep_install_error

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

  • Переустановка базы R делает что-то хорошее, плохое или еще что-нибудь.
  • Еще одна вещь, которая приходит на ум, - это понизить версию и удалить последние пакеты, чтобы вернуться к предыдущему состоянию. Не является удовлетворительным и сложным в обслуживании для скользящих выпусков, таких как Arch Lx.

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

1 ответ1

0

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 предшествующая строке, где отображается "not found", относится к сломанному пакету, который необходимо удалить и переустановить.

3) Переместите ранее идентифицированные поврежденные папки в резервную папку на ваш выбор. Пакеты 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 .

НТН.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .