Перенос библиотек R

Я хотел бы переместить несколько библиотек R (*) с одного диска на другой, в Linux, и хотел бы знать, возможно ли и безопасно ли это простое перемещение, или мне следует удалить и переустановить пакеты . Я понимаю, что расположение библиотек определяется с помощью .libPaths () , и просмотрел руководство «Установка и администрирование R», чтобы узнать о миграции библиотек, но не вижу рекомендуемый процесс.

Я вижу три варианта:

  1. Запустить remove.packages () для всех небазовых пакетов и установить заново через install.packages (lib = "/ path / to / новое / местоположение ") .
  2. Переместите библиотеки (каталоги) с помощью mv и используйте символические ссылки, чтобы указать на новые места (и, в конечном итоге, удалить символическую ссылку).
  3. Используйте команду mv в Linux для перемещения каталоги оптом и обновите .Library.site в R_HOME / etc / Rprofile.site , как предложено в Руководстве по установке и администрированию R

Вариант № 1 тупой . Вариант №2 должен работать, но кажется немного необоснованным.

№3 безопасен или с ним серьезные проблемы? Я выявил следующие проблемы: права доступа к каталогам и возможность того, что установка любого пакета хранит абсолютные пути, а не относительные пути (что кажется необоснованным и ненужным).

Что касается хранения абсолютных путей, я обнаружил, что rJava хранит местоположение R_HOME в файле с именем run . Это не проблема библиотеки как таковая , но это один из признаков того, что пакет (и при этом хороший пакет) хранит частную копию абсолютного пути.

(*) Есть несколько библиотек и множество пакетов. Естественно, перемещаются только библиотеки (каталоги), но это может повлиять на пакеты.


ОБНОВЛЕНИЕ 1 / Уточнение: Просто чтобы уточнить: я только мигрирую библиотеки, не меняя версию R или версии пакетов. Обновление R или пакетов может выполняться отдельно, но вопрос лишь в том, возможно ли перемещение библиотек. Кажется, что если необходимо обновить или переустановить все пакеты, чтобы убедиться, что все установлено правильно, то это путь, больше похожий на вариант №1, чем на вариант №3.

ОБНОВЛЕНИЕ 2: Ответы на другой пост SO содержат несколько хороших идей о том, как избежать этой проблемы при обновлении. Я не обновляю R, но предложение Дирка Эддельбюттеля не устанавливать пакеты в дереве файлов R является разумным.

27
задан Community 23 May 2017 в 12:02
поделиться

1 ответ

Объединение ответа здесь, с этим ответом: https://community.rstudio.com/t/reinstalling-packages-on-new-version-of-r/7670/4

я нашел простое решение, которое работало:

lib_loc <- "C:/Users/apdev/Documents/R/win-library/3.3"
to_install <- unname(installed.packages(lib.loc = lib_loc)[, "Package"])
to_install
remove.packages(to_install, lib="C:/Users/apdev/Documents/R/win-library/3.3")
install.packages(pkgs = to_install, lib="C:/Program Files/R/R-3.6.1/library")
0
ответ дан 28 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

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