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


0

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

Обновление R [основание] в вашей системе может иногда нарушать некоторую зависимость, в зависимости от установленных пакетов и использования по телефонам: 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 работать "сейчас"?

Ответы:


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.

НТН.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.